Skip to content

Latest commit

 

History

25 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EVENT PLANNER

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.

FEATURES

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

ASSUMPTIONS

  • 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 !!!!

TECH STACK


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

FRONTEND

The frontend of this project is hosted at: https://github.com/slackuj/event-planner-client

BACKEND

The backend of this project is hosted at: https://github.com/slackuj/event-planner-server

REQUIREMENTS

  1. Docker Compose
  2. git
  3. node.js
  4. Terminal or IDE of your choice
  5. Cloudinary Account
  6. Sendgrid Account

INSTALLATION

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 !!!

  1. Clone project root repository:
git clone https://github.com/slackuj/event-planner.git
cd event-planner

You do not need to run npm install if you only want to run the project !!!

  1. Clone Frontend inside event-planner-client directory:
git clone https://github.com/slackuj/event-planner-client.git
cd event-planner-client
npm install
  1. Clone Backend inside event-planner-server directory:
git clone https://github.com/slackuj/event-planner-server.git
cd event-planner-server
npm install
  1. Set up all required environment variables as specified in .env.example file into .env file
    in both frontend, backend, and project root.

  2. 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:seed

If it is not your first attempt for migration, You may need to run docker compose exec npm run migrate:rollback before docker compose exec backend npm run migrate:latest.

You need to run migration and seeding only once !

START GUIDE

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

BUGS

Please report any bugs and issues here in this repository or to slackuj@gmail.com.

About

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.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors