Event Planner is a full-stack event planning application that allows
users to create, manage, and browse events with secure authentication and a responsive UI.
This project demonstrates practical full-stack development skills in a real-world scenario.
This project provides following features:
Event Management
- create, edit, delete, join events
- rsvp, tags
- surf events, filter events, public events, private events
- manage event participants
Authentication & Authorization
- user signup and login
- secure authentication using JWT
- refresh token implementation
- authorization
- email verification
- Users can join/rsvp any public event
- Organizer can add participant(request participant) to join any public/private events
- Past events are not editable. Past events can only be deleted.
- Event Tags can be added to all public/participating events/requested events/past events
- Location is being stored using Location Tags
- Location Tags and Event Tags are only deleted from user_location_tags and user_event_tags tables considering the following facts:
i. Other users can also add same tags later
ii. tags can be used for recommendation !!!!
Frontend
- React
- TypeScript
- Redux Toolkit (Global State Management)
- RTK Query (Data Fetching & Cache Management)
Backend
- Node.js
- Express
- Typescript
Database
- MYSQL
Query Builder
- Knex.js
Local DB Service
- Docker Compose
Email Service
- Sendgrid
Media
- Cloudinary
The frontend of this project is hosted at: https://github.com/slackuj/event-planner-client
The backend of this project is hosted at: https://github.com/slackuj/event-planner-server
- Docker Compose
- git
- node.js
- Terminal or IDE of your choice
- Cloudinary Account
- Sendgrid Account
The following lines of codes are for Ubuntu 25.10.
These should be similar for other environments.
You can use npx degit for cloning if you don't want to copy the git history !!!
- Clone project root repository:
git clone https://github.com/slackuj/event-planner.git
cd event-plannerYou do not need to run
npm installif you only want to run the project !!!
- Clone Frontend inside event-planner-client directory:
git clone https://github.com/slackuj/event-planner-client.git
cd event-planner-client
npm install- Clone Backend inside event-planner-server directory:
git clone https://github.com/slackuj/event-planner-server.git
cd event-planner-server
npm install-
Set up all required environment variables as specified in
.env.examplefile into.envfile
in both frontend, backend, and project root. -
Start Docker Compose and Perform Database Seeding
command for starting docker compose may differ for you based on your environment and user privileges.
make sure you are in project root directory i.e event-planner/
docker compose up
docker compose exec backend npm run migrate:latest
docker compose exec backend npm run db:seedIf it is not your first attempt for migration, You may need to run
docker compose exec npm run migrate:rollbackbeforedocker compose exec backend npm run migrate:latest.You need to run migration and seeding only once !
The project is up and running at FRONTEND_ORIGIN
Next time, you can now run the project using:
docker compose up
Event Planner should be up and running on your FRONTEND_ORIGIN
Dummy Users
- alice@example.com password: passwordPW123#
- bob@example.com password: passwordPW123#
- charlie@example.com password: passwordPW123#
- diana@example.com password: passwordPW123#
- evan@example.com password: passwordPW123#
Please report any bugs and issues here in this repository or to slackuj@gmail.com.