This repository contains the backend system for an Event Planner application, designed to facilitate event management, attendee registration, and task tracking. Built with Spring Boot, this backend leverages the robustness of Spring's ecosystem, offering a RESTful API, integration with PostgreSQL for data persistence, and Swagger for API documentation.
- Event Management: Create, update, delete, and list events with details such as name, description, location, date and time, and total seats.
- Attendee Registration: Manage attendee registrations, including attendee information and registration status.
- Task Management: Assign tasks related to events, including task name, description, and associated costs.
- Cost Management: Track costs with detailed cost sources and categories for financial management of events.
- API Documentation: Utilize Swagger UI for easy navigation and interaction with the API's endpoints.
- Spring Boot (3.2.0): Framework for creating stand-alone, production-grade Spring based applications.
- Spring Data JPA: For data persistence and CRUD operations on the database.
- PostgreSQL: Open source relational database.
- Spring Security: For authentication and authorization.
- Lombok: To reduce boilerplate code.
- Java JWT: For JSON Web Token (JWT) generation and validation.
- JDK 17
- Maven
- PostgreSQL
-
Clone the repository
git clone https://github.com/<your-username>/event_planner_backend.git cd event_planner_backend
-
Configure PostgreSQL
Create a PostgreSQL database named
event_planner
.CREATE DATABASE event_planner;
Update
application.yml
with your PostgreSQL username and password.spring: datasource: url: jdbc:postgresql://localhost:5432/event_planner username: <your_username> password: <your_password>
-
Build the Application
Use Maven to build the application.
mvn clean install
-
Run the Application
Start the Spring Boot application.
mvn spring-boot:run
The application will start on
http://localhost:8080
.
Navigate to http://localhost:8080/swagger-ui.html
to view and interact with the API documentation.
Contributions are welcome! Please feel free to submit a pull request or open an issue for any bugs, features, or improvements.
This project is licensed under the MIT License - see the LICENSE.md file for details.