Skip to content

A full-stack event management application designed to streamline the process of planning, scheduling, and managing events. Built with a modern tech stack featuring a React frontend, Node.js/Express backend, MongoDB database, and JWT-based authentication. Includes optional Docker support for easy deployment.

License

Notifications You must be signed in to change notification settings

marwan-ahmed-23/Event-Planner-Assistant

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Event Planner Assistant (Full Stack Edition)

A comprehensive full-stack application designed to help individuals and organizations efficiently plan, schedule, and manage events. This major update introduces a React frontend, a Node.js/Express backend, MongoDB for data storage, JWT authentication, and optional Docker deployment.

Table of Contents

  1. Key Features
  2. Tech Stack
  3. Installation
  4. Usage
  5. Project Structure
  6. Contributing
  7. License

Key Features

  • User Authentication
    Register and log in with JWT-based authentication to secure API routes.

  • Event Management
    Create, edit, view, and delete events. Each event can include a date, description, and more.

  • Responsive Interface
    Built with React and Bootstrap for a modern, mobile-friendly UI.

  • Protected API Endpoints
    Authorization tokens (JWT) ensure only authenticated users can access or modify their own events.

  • Docker Support (Optional)
    Quickly deploy the backend, frontend, and MongoDB as separate services using docker-compose.

Tech Stack

Installation

  1. Clone the Repository

    git clone https://github.com/marwan-ahmed-23/Event-Planner-Assistant.git
  2. Install Backend Dependencies

    cd Event-Planner-Assistant/backend
    npm install
  3. Install Frontend Dependencies

    cd ../frontend
    npm install
  4. Configure Environment Variables

    • Create a .env file in backend/ (or use another method) with variables like:
      DB_URI=mongodb://localhost:27017/event_planner
      JWT_SECRET=mysecretkey
      PORT=5000
      
    • Adjust these values based on your environment (local or production).

Usage

Local Development (No Docker)

  1. Start MongoDB
    Ensure you have a MongoDB instance running locally on port 27017, or update DB_URI in your .env.

  2. Run Backend
    In the backend folder, start the server:

    npm run dev

    By default, it listens on http://localhost:5000.

  3. Run Frontend
    In another terminal, go to the frontend folder:

    npm start

    The React app will run on http://localhost:3000.

  4. Open the App

    • Visit http://localhost:3000 in your browser.
    • Sign up or log in to create and manage events.

Using Docker (Optional)

  1. Build and Run with docker-compose
    From the project root:
    docker-compose up --build
  2. Access the Services
    • Frontend: http://localhost:3000
    • Backend API: http://localhost:5000
    • MongoDB container internally at mongo:27017 (exposed if configured in docker-compose.yml)

Project Structure

Event-Planner-Assistant/
├── backend/
│   ├── src/
│   │   ├── app.js                  # Express server setup & main configuration
│   │   ├── routes/
│   │   │   ├── users.js            # Routes for user signup/login
│   │   │   └── events.js           # Routes for event CRUD operations
│   │   ├── controllers/
│   │   │   └── eventController.js  # Business logic for event routes
│   │   ├── models/
│   │   │   ├── User.js             # Mongoose schema/model for User
│   │   │   └── Event.js            # Mongoose schema/model for Event
│   │   └── middleware/
│   │       └── auth.js             # JWT auth middleware to protect routes
│   ├── package.json                # Backend dependencies and npm scripts
│   └── Dockerfile (optional)       # Docker setup for the backend
├── frontend/
│   ├── public/
│   │   └── index.html              # Main HTML template for the React app
│   ├── src/
│   │   ├── components/
│   │   │   ├── EventList.jsx       # Displays list of events
│   │   │   ├── EventForm.jsx       # Form to create/edit an event
│   │   │   └── AuthForm.jsx        # Signup & login forms
│   │   ├── services/
│   │   │   └── api.js              # Axios instance & API calls with interceptors
│   │   ├── App.js                  # Main React component
│   │   └── index.js                # Entry point for React application
│   ├── package.json                # Frontend dependencies and npm scripts
│   └── Dockerfile (optional)       # Docker setup for the frontend
├── docker-compose.yml (optional)   # Defines multi-container setup (backend, frontend, DB)
├── README.md                       # Project documentation
└── LICENSE                         # License file

Contributing

  1. Fork the repository.
  2. Create a new branch:
    git checkout -b feature/my-feature
  3. Commit your changes:
    git commit -m "Add a new feature"
  4. Push your branch:
    git push origin feature/my-feature
  5. Open a Pull Request on GitHub.

We welcome improvements, bug fixes, and suggestions!

License

This project is licensed under the MIT License.
Feel free to modify and distribute as needed.


Enjoy planning your events with ease! For any questions, issues, or feature requests, please open an issue or submit a pull request.

About

A full-stack event management application designed to streamline the process of planning, scheduling, and managing events. Built with a modern tech stack featuring a React frontend, Node.js/Express backend, MongoDB database, and JWT-based authentication. Includes optional Docker support for easy deployment.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published