Skip to content

HARIHARANS24/birthday-event-planner-react-vite-springboot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

70 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸŽ‚ Birthday Event Planner

A modern and dynamic Birthday Event Planner application designed to help users plan, organize, and manage birthday events. This project integrates a React frontend powered by Vite and a Spring Boot backend to deliver a seamless and efficient experience.

πŸš€ Features

  • Event Management πŸ“…

    • Create and manage birthday events
    • Set event details (date, time, venue, theme)
    • Track event status and progress
  • Guest Management πŸ‘₯

    • Add, edit, and remove guests
    • Track RSVPs
    • Manage guest lists
  • Theme & Decorations 🎨

    • Browse and select event themes
    • Customize decorations
    • Preview theme options
  • Food & Catering 🍽️

    • Select food packages
    • Customize menu options
    • Special dietary requirements handling
  • Payment Integration πŸ’³

    • Secure payment processing
    • Multiple payment options
    • Payment tracking and history
  • User Dashboard πŸ“Š

    • View upcoming events
    • Track event budgets
    • Manage personal information

πŸ› οΈ Tech Stack

Frontend

  • React.js
  • Vite
  • Redux Toolkit
  • React Router
  • Axios
  • Tailwind CSS
  • Material-UI

Backend

  • Java 17
  • Spring Boot
  • Spring Security
  • Spring Data JPA
  • MySQL
  • JWT Authentication
  • Maven

πŸ“ Project Structure

πŸ“¦ birthday-event-management
β”œβ”€β”€ πŸ“‚ frontend
β”‚   β”œβ”€β”€ πŸ“‚ src
β”‚   β”‚   β”œβ”€β”€ πŸ“‚ assets
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“‚ Admin
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ AdminHome.jsx
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ AdminLogin.jsx
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ AdminUserDetails.jsx
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ EventList.jsx
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ EventView.jsx
β”‚   β”‚   β”‚   β”‚   └── πŸ“„ Feedback.jsx
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“‚ Auth
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ Forgot.jsx
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ Signin.jsx
β”‚   β”‚   β”‚   β”‚   └── πŸ“„ Signup.jsx
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“‚ Components
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“‚ CSS
β”‚   β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ AboutUs.css
β”‚   β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ AdminHome.css
β”‚   β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ AdminLogin.css
β”‚   β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ ContactUs.css
β”‚   β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ EventDisplay.css
β”‚   β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ EventList.css
β”‚   β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ EventRegistrationForm.css
β”‚   β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ EventViewForm.css
β”‚   β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ Faq.css
β”‚   β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ FoodItems.css
β”‚   β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ Footer.css
β”‚   β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ Forgot.css
β”‚   β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ Home.css
β”‚   β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ Navbar.css
β”‚   β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ ProfileDashboard.css
β”‚   β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ Services.css
β”‚   β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ Signin.css
β”‚   β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ Signup.css
β”‚   β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ Stats.css
β”‚   β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ StoryPage.css
β”‚   β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ Video.css
β”‚   β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ WhatWeDo.css
β”‚   β”‚   β”‚   β”‚   β”‚   └── πŸ“„ WhyUs.css
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ ErrorBoundary.jsx
β”‚   β”‚   β”‚   β”‚   └── πŸ“„ LazySuspense.jsx
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“‚ Images
β”‚   β”‚   β”‚   β”‚   └── πŸ“„ gify.gif
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“‚ Pages
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ AboutUs.jsx
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ Contactus.jsx
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ EventDisplay.jsx
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ EventList.jsx
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ EventRegistrationForm.jsx
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ EventViewForm.jsx
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ F.jsx
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ Faq.jsx
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ FoodItems.jsx
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ Footer.jsx
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ Gallery.jsx
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ Home.jsx
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ Navbar.jsx
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ Privacy.jsx
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ ProfileDashboard.jsx
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ οΏ½οΏ½ RazorPay.jsx
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ Services.jsx
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ Terms.jsx
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ WhatWeDo.jsx
β”‚   β”‚   β”‚   β”‚   └── πŸ“„ WhyUs.jsx
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“‚ redux
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ store.jsx
β”‚   β”‚   β”‚   β”‚   └── πŸ“„ UserSlice.jsx
β”‚   β”‚   β”‚   └── πŸ“‚ User
β”‚   β”‚   β”‚       └── πŸ“„ UserProfile.jsx
β”‚   β”‚   β”œβ”€β”€ πŸ“„ App.css
β”‚   β”‚   β”œβ”€β”€ πŸ“„ App.jsx
β”‚   β”‚   β”œβ”€β”€ πŸ“„ index.css
β”‚   β”‚   └── πŸ“„ main.jsx
β”‚   β”œβ”€β”€ πŸ“„ .gitignore
β”‚   β”œβ”€β”€ πŸ“„ index.html
β”‚   β”œβ”€β”€ πŸ“„ package-lock.json
β”‚   β”œβ”€β”€ πŸ“„ package.json
β”‚   └── πŸ“„ vite.config.js
β”‚
β”œβ”€β”€ πŸ“‚ backend
β”‚   β”œβ”€β”€ πŸ“‚ .mvn
β”‚   β”œβ”€β”€ πŸ“‚ .vscode
β”‚   β”œβ”€β”€ πŸ“‚ src
β”‚   β”‚   β”œβ”€β”€ πŸ“‚ main
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“‚ java
β”‚   β”‚   β”‚   β”‚   └── πŸ“‚ com
β”‚   β”‚   β”‚   β”‚       └── πŸ“‚ birthday
β”‚   β”‚   β”‚   β”‚           β”œβ”€β”€ πŸ“‚ config
β”‚   β”‚   β”‚   β”‚           β”‚   β”œβ”€β”€ πŸ“„ ApplicationConfig.java
β”‚   β”‚   β”‚   β”‚           β”‚   β”œβ”€β”€ πŸ“„ JwtAuthenticationFilter.java
β”‚   β”‚   β”‚   β”‚           β”‚   β”œβ”€β”€ πŸ“„ SecurityConfig.java
β”‚   β”‚   β”‚   β”‚           β”‚   └── πŸ“„ SwaggerConfig.java
β”‚   β”‚   β”‚   β”‚           β”œβ”€β”€ πŸ“‚ controller
β”‚   β”‚   β”‚   β”‚           β”‚   β”œβ”€β”€ πŸ“„ AddonController.java
β”‚   β”‚   β”‚   β”‚           β”‚   β”œβ”€β”€ πŸ“„ AuthenticationController.java
β”‚   β”‚   β”‚   β”‚           β”‚   β”œβ”€β”€ πŸ“„ EventController.java
β”‚   β”‚   β”‚   β”‚           β”‚   β”œβ”€β”€ πŸ“„ FeedbackController.java
β”‚   β”‚   β”‚   β”‚           β”‚   β”œβ”€β”€ πŸ“„ FoodController.java
β”‚   β”‚   β”‚   β”‚           β”‚   β”œβ”€β”€ πŸ“„ PaymentController.java
β”‚   β”‚   β”‚   β”‚           β”‚   β”œβ”€β”€ πŸ“„ ThemeController.java
β”‚   β”‚   β”‚   β”‚           β”‚   └── πŸ“„ UserController.java
β”‚   β”‚   β”‚   β”‚           β”œβ”€β”€ πŸ“‚ dto
β”‚   β”‚   β”‚   β”‚           β”‚   β”œβ”€β”€ πŸ“‚ request
β”‚   β”‚   β”‚   β”‚           β”‚   β”‚   β”œβ”€β”€ πŸ“„ ForgotPasswordRequest.java
β”‚   β”‚   β”‚   β”‚           β”‚   β”‚   β”œβ”€β”€ πŸ“„ LoginRequest.java
β”‚   β”‚   β”‚   β”‚           β”‚   β”‚   └── πŸ“„ RegisterRequest.java
β”‚   β”‚   β”‚   β”‚           β”‚   └── πŸ“‚ response
β”‚   β”‚   β”‚   β”‚           β”‚       β”œβ”€β”€ πŸ“„ BasicResponse.java
β”‚   β”‚   β”‚   β”‚           β”‚       └── πŸ“„ LoginResponse.java
β”‚   β”‚   β”‚   β”‚           β”œβ”€β”€ πŸ“‚ model
β”‚   β”‚   β”‚   β”‚           β”‚   β”œβ”€β”€ πŸ“„ Addon.java
β”‚   β”‚   β”‚   β”‚           β”‚   β”œβ”€β”€ πŸ“„ Event.java
β”‚   β”‚   β”‚   β”‚           β”‚   β”œβ”€β”€ πŸ“„ Feedback.java
β”‚   β”‚   β”‚   β”‚           β”‚   β”œβ”€β”€ πŸ“„ Food.java
β”‚   β”‚   β”‚   β”‚           β”‚   β”œβ”€β”€ πŸ“„ Payment.java
β”‚   β”‚   β”‚   β”‚           β”‚   β”œβ”€β”€ πŸ“„ Theme.java
β”‚   β”‚   β”‚   β”‚           β”‚   β”œβ”€β”€ πŸ“„ Token.java
β”‚   β”‚   β”‚   β”‚           β”‚   └── πŸ“„ User.java
β”‚   β”‚   β”‚   β”‚           β”œβ”€β”€ πŸ“‚ repository
β”‚   β”‚   β”‚   β”‚           β”‚   β”œβ”€β”€ πŸ“„ AddonRepository.java
β”‚   β”‚   β”‚   β”‚           β”‚   β”œβ”€β”€ πŸ“„ EventRepository.java
β”‚   β”‚   β”‚   β”‚           β”‚   β”œβ”€β”€ πŸ“„ FeedbackRepository.java
β”‚   β”‚   β”‚   β”‚           β”‚   β”œβ”€β”€ πŸ“„ FoodRepository.java
β”‚   β”‚   β”‚   β”‚           β”‚   β”œβ”€β”€ πŸ“„ PaymentRepository.java
β”‚   β”‚   β”‚   β”‚           β”‚   β”œβ”€β”€ πŸ“„ ThemeRepository.java
β”‚   β”‚   β”‚   β”‚           β”‚   β”œβ”€β”€ πŸ“„ TokenRepository.java
β”‚   β”‚   β”‚   β”‚           β”‚   └── πŸ“„ UserRepository.java
β”‚   β”‚   β”‚   β”‚           β”œβ”€β”€ πŸ“‚ service
β”‚   β”‚   β”‚   β”‚           β”‚   β”œβ”€β”€ πŸ“‚ impl
β”‚   β”‚   β”‚   β”‚           β”‚   β”‚   └── πŸ“„ AuthenticationServiceImpl.java
β”‚   β”‚   β”‚   β”‚           β”‚   β”œβ”€β”€ πŸ“„ AddonService.java
β”‚   β”‚   β”‚   β”‚           β”‚   β”œβ”€β”€ πŸ“„ AuthenticationService.java
β”‚   β”‚   β”‚   β”‚           β”‚   β”œβ”€β”€ πŸ“„ EventService.java
β”‚   β”‚   β”‚   β”‚           β”‚   β”œβ”€β”€ πŸ“„ FeedbackService.java
β”‚   β”‚   β”‚   β”‚           β”‚   β”œβ”€β”€ πŸ“„ FoodService.java
β”‚   β”‚   β”‚   β”‚           β”‚   β”œβ”€β”€ πŸ“„ PaymentService.java
β”‚   β”‚   β”‚   β”‚           β”‚   β”œβ”€β”€ πŸ“„ ThemeService.java
β”‚   β”‚   β”‚   β”‚           β”‚   └── πŸ“„ UserService.java
β”‚   β”‚   β”‚   β”‚           └── πŸ“‚ util
β”‚   β”‚   β”‚   β”‚               β”œβ”€β”€ πŸ“„ JwtUtils.java
β”‚   β”‚   β”‚   β”‚               └── πŸ“„ LogoutUtils.java
β”‚   β”‚   β”‚   └── πŸ“‚ resources
β”‚   β”‚   β”‚       └── πŸ“„ application.properties
β”‚   β”‚   └── πŸ“‚ test
β”‚   β”œβ”€β”€ πŸ“„ pom.xml
β”‚   β”œβ”€β”€ πŸ“„ mvnw
β”‚   β”œβ”€β”€ πŸ“„ mvnw.cmd
β”‚   └── πŸ“„ .gitignore
β”‚
└── πŸ“„ README.md

πŸš€ Getting Started

Prerequisites

  • Node.js (v16 or higher)
  • Java 17 or higher
  • MySQL
  • Maven

Frontend Setup

cd frontend
npm install
npm run dev

Backend Setup

cd backend
mvn clean install
mvn spring-boot:run

πŸ”§ Configuration

Frontend Configuration

Create a .env file in the frontend directory:

VITE_API_URL=http://localhost:8080

Backend Configuration

Update application.properties in backend/src/main/resources:

spring.datasource.url=jdbc:mysql://localhost:3306/birthday_planner
spring.datasource.username=your_username
spring.datasource.password=your_password

🀝 Contributing

We welcome contributions to the Birthday Event Planner! Please follow these steps:

  1. Fork the repository
  2. Create a new branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Contribution Guidelines

  • Follow the existing code style
  • Write clear commit messages
  • Add tests for new features
  • Update documentation as needed

πŸ“ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ‘₯ Authors

πŸ™ Acknowledgments

  • Thanks to all contributors who have helped shape this project
  • Special thanks to the open-source community for their invaluable tools and libraries

About

An event planning tool created with React, Vite, and Spring Boot featuring guest lists, scheduling, and budget tracking.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published