Web Tech Assign 2
Web Tech Assign 2
MINI PROJECT
TITLE:
FLICKPICK(movie booking webapp)
TEAM MEMBERS:
SYED SHARAAFETH HASSAN S(2022115103)
VISHAL T(2022115078)
FLICKPICK (movie booking webapp)
1. Introduction
1.1 Project Overview
➢ Flickpick is designed to support users in managing movie bookings
efficiently. It integrates various functionalities such as movie details
retrieval, user ratings, and showtime management, all within a unified
platform. The primary aim of this project is to offer a comprehensive
solution for movie enthusiasts, theater owners, and administrators to
streamline their booking and management processes.
2. Backend Services:
• The backend is powered by PostgreSQL, which handles data storage
and retrieval for movies, ratings, and showtimes.
• The system uses JDBC for database connectivity and operations.
3. Database:
• The database schema includes tables for Movies, Ratings, Users,
ShowTimes, Theaters, Screens, and more.
• Relationships between tables are defined using foreign keys to
ensure data integrity.
2.2 Design Patterns
The Flickpick application utilizes key design patterns to ensure scalability,
maintainability, and separation of concerns:
Model-View-Controller (MVC) Pattern:
• This pattern divides the app into three components: Model (handles
data and business logic), View (handles user interface), and Controller
(coordinates interactions between model and view). This separation
makes the app more modular and maintainable.
Singleton & Observer Patterns:
• The Singleton pattern ensures that there is only one instance of
services like database connections, maintaining consistency
throughout the app.
• The Observer pattern enables automatic updates to the UI when data
changes, such as syncing movie details or ratings from the database.
SERVLETS:
• GetMovieDetailsServlet: Fetches details of a specific movie by name
and returns them in JSON format.
• MovieServlet: Retrieves a list of movies available in a specified city
along with average ratings in JSON format.
• GetTopRatingsServlet: Fetches the average rating and top 10 reviews
for a movie by its ID in JSON format.
• AddRatingServlet: Allows users to submit ratings and reviews for a
movie, returning a success or error message.
• GetShowTimesServlet: Retrieves showtimes for a specific movie in a
city, returning details in JSON format.
• AddShowTimeServlet: Allows administrators to add showtimes for a
movie, returning a success or error message.
• GetTheatersServlet: Retrieves a list of theaters in a city, returning
details in JSON format.
• AddTheaterServlet: Allows administrators to add a new theater,
returning a success or error message.
• GetScreensServlet: Retrieves a list of screens in a specific theater,
returning details in JSON format.
• AddScreenServlet: Allows administrators to add a screen to a theater,
returning a success or error message.
• GetSeatsServlet: Retrieves a list of seats in a specific screen,
returning details in JSON format.
• AddSeatServlet: Allows administrators to add seats to a screen,
returning a success or error message.
• BookTicketServlet: Allows users to book tickets for a showtime,
returning a success or error message.
• GetBookedSeatsServlet: Retrieves a list of booked seats for a specific
showtime in JSON format.
CODE:
OUTPUT:
4. Technologies and Tools Used
The Flickpick application incorporates key technologies and tools for an
efficient user experience.
Programming Languages and Frameworks:
• Java: Used for backend development.
• Jakarta Servlet: For handling HTTP requests and responses.
• React: Used for building the dynamic and responsive user interface
(frontend).
Database Management:
• PostgreSQL: Utilized for database management and storage of movie-
related data.
Development Tools:
• IntelliJ IDEA: The primary IDE for development.
• GitHub: For version control and collaboration.
5. Challenges Faced and Solutions
• While developing the Flickpick application, several challenges were
encountered, and solutions were implemented to overcome them.