Skip to content

bonagirid/emmaeventsmanagement

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 

Repository files navigation

emmaeventsmanagement

Event Management Platform

Description

The eventmanagement project is a comprehensive web application developed for Emma’s Event Management, a small business dedicated to organizing and managing events. This project forms the core of the coursework for the 7051CEM Web Applications and AI module at Coventry University. The platform provides a user-friendly interface for creating, viewing, RSVPing to, and managing event listings, with additional features for filtering, editing, and data validation. It ensures secure user authentication and data persistence, making it a robust solution for event organizers and attendees alike.

Features and Functionalities

The application fulfills the following key requirements:

  • Event Listings: Users can view a list of events in a tabular format, with columns for name, date, location, type, description, and actions (View RSVPs, Update RSVP, Edit, Delete). Filters for event type, date, and location allow dynamic querying.
  • Event Creation and Editing: A form enables users to create new events with details such as name, date, location, description, and event type (Conference, Wedding, Workshop, Party). Existing events can be edited or deleted by their organizers.
  • RSVP and Attendance Management: Users can RSVP to events by specifying the number of attendees, and organizers can view a detailed list of RSVPs for each event, including usernames, attendee counts, and RSVP timestamps.
  • Search and Filter: Dynamic filters allow users to search events by type, date, or location, enhancing usability.
  • User Authentication: Secure login and registration are implemented, with password hashing and role-based access control.
  • Data Validation: Input validation ensures mandatory fields are filled, dates are in the correct format (mm/dd/yyyy), and passwords match during registration.

Architecture

The application is built using Spring Boot, leveraging Java EE technologies for a scalable and maintainable solution. It follows the Model-View-Controller (MVC) design pattern:

  • Model: Represented by JavaBeans (Event, User, Rsvp) for data encapsulation, with SQLite as the database (events.db) storing three tables: users, events, and rsvps. The schema includes foreign key constraints for referential integrity.
  • View: Implemented using JSP files (index.jsp, login.jsp, register.jsp, events.jsp, event_rsvps.jsp, new_event.jsp, edit_event.jsp) with a consistent design featuring a navy theme (#2C3E50) for the header/footer and blue accents (#3498db) for buttons and highlights.
  • Controller: Managed by Spring @Controller classes (AuthController, EventController, HomeController), handling HTTP requests and responses with @GetMapping and @PostMapping annotations.

Implementation Details

The backend is powered by Spring Boot, with key components including:

  • Controllers: EventController manages CRUD operations for events and RSVPs, AuthController handles user authentication, and HomeController serves the welcome page.
  • Services: UserService implements UserDetailsService for Spring Security, managing user registration and authentication.
  • Configuration: AuthConfig and SecurityConfig set up Spring Security with BCrypt password encoding, DatabaseConfig configures SQLite connectivity, WebConfig resolves JSP views, and DatabaseInitializer creates database tables on startup.
  • Security: Spring Security ensures only authenticated users can access event management features, with CSRF disabled for simplicity and specific endpoints (e.g., /login, /register) permitted for all users.
  • Database: SQLite (events.db) stores data persistently, with tables initialized via DatabaseInitializer. Prepared statements are used to prevent SQL injection.

The front-end JSP pages are styled with CSS for a professional look, featuring rounded corners, shadows, and a responsive layout. The application is configured via application.properties, setting the server port to 8085, enabling debug logging for Spring components, and allowing circular references for dependency injection.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Languages