TODO
You need have Node.js 20 or higher installed.
This project uses Docker compose for development.
# Clone the repository
git clone git@github.com:zvolcsey/event-ticket.git
cd event-ticket
# Run `docker compose up` in detached mode
docker compose -f docker-compose.dev.yml up --build -d
# Stop and remove the containers
docker compose -f docker-compose.dev.yml down
# Remove all data
docker compose -f docker-compose.dev.yml down -v
This is going to do the next things.
- Build and start all necessary containers:
- Client (event-ticket-client)
- Server (event-ticket-server)
- PostgreSQL database (event-ticket-postgres)
- Create the following tables and custom types from the migrations files.
- Tables
- admin_users
- bands
- bands_events
- customers
- event_categories
- events
- ordered_items
- orders
- pgmigrations
- tickets
- tickets_hold
- venue_addresses
- venues
The migrations files are available in the migrations folder.
- Add seed data to the database
The following data are going to added:
- categories
- venues
- events
- bands
- Connect the bands to the events in the bands_events table.
Order in the events_seed.ts file: categories -> venues -> events -> bands -> bands_events
The seeded data is going to be logged when running docker-compose.
The seed files are available in the seeds folder.
This portfolio app uses session-based authentication with cookies.
- Session cookies are used to maintain user authentication state.
- Browser cookies only store a session ID and expire after 24 hours.
- Session data (user ID, authentication state) is stored securely on the server.
- Sessions expire after 24 hours of inactivity.
- All data is temporarily and for demonstration purposes only.
MIT License