Skip to content

It is a React + Node.js + Express full stack e-commerce portfolio project.

License

Notifications You must be signed in to change notification settings

zvolcsey/event-ticket

Repository files navigation

Event Ticket

Overview

React + Node.js + Express + PostgreSQL fullstack e-commerce portfolio project

Table of Contents

  1. Routing
  2. Run locally
  3. Ports
  4. Authentication and Cookies
  5. License

Routing

TODO

Run locally

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.

  1. Build and start all necessary containers:
  • Client (event-ticket-client)
  • Server (event-ticket-server)
  • PostgreSQL database (event-ticket-postgres)
  1. 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.

  1. 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.

Authentication and Cookies

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.

License

MIT License

About

It is a React + Node.js + Express full stack e-commerce portfolio project.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published