Smiling Man Wearing Wireless Earphones

CalTech Coding Bootcamp

Backend and Database Development


Zumba by Rohit

Phase-End Project | Ronette Guevara

Problem Statement

Rohit, a dedicated Zumba Instructor, conducts numerous sessions daily, partitioning his participants into morning and evening batches. To streamline participant management, he seeks a sophisticated software solution to meticulously document participant and batch data. Fortunately, Rohit's friend Ronette is a web developer. Rohit has tasked her with crafting a backend solution tailored to efficiently oversee participant and batch logistics.

Dance Fitness

Web App Demo

Project Structure in Eclipse

  • Multiple servlets were created to perform CRUD operations. However, some of these servlets were replaced by JSP pages to enhance user experience.
  • Aside from servlets, a DB.java file was also created to facilitate CRUD operations using JDBC.
  • Model classes were also developed to define classes and participant objects.
  • Lastly, HTML pages were developed for login and forms for data collection.

HTML Pages for CRUD Operations

Login Page (index.html)

This is the landing page of the web application. Authentication is done through LoginServlet.java.


Below are the credentials to log in upon deployment.


Email address: admin@zumbabyrohit.com

Password: admin123!

add-class.html

This page was developed to enable users to add new classes that will be automatically in the MySQL database.

add-participant.html

This page was developed to enable users to add new participants that will be automatically in the MySQL database.

CRUD Operations using JDBC

Create

The data collection forms enable users to create new classes and participants. These forms are connected to the database through the controller and DB servlets.

Read

The ViewClasses and ViewParticipants JSP pages allow users to see all entries in the corresponding table defined in the MySQL database. The DB servlet was also used to make this operation possible.

Update

The EditClass and EditParticipant JSP pages allow users to edit and update existing entries in the corresponding table defined in the MySQL database. The DB servlet was also used to make this operation possible.

Delete

The DeleteClassesController and DeleteParticipantsController servlets allow users to delete existing entries in the corresponding table defined in the MySQL database. The DB servlet was also used to make this operation possible.

MySQL Database Configuration

Below is the MySQL script used to create the zumba_management database and Participant and Classes tables.

JSP Pages for CRUD Operations

Home.jsp

This is the home page of the application where the user can choose from multiple actions to manage Zumba classes and participants. A HomeServlet was initially created for this functionality but was replaced by this JSP page to enhance user experience.

EditClass.jsp

This JSP page enables the user to edit and update existing records in the All Classes table in the application. An EditClassesController was initially created for this functionality but was replaced by this JSP page to enhance user experience.

EditParticipant.jsp

This JSP page enables the user to edit and update existing records in the All Participants table in the application. An EditParticipantsController was initially created for this functionality but was replaced by this JSP page to enhance user experience.

ViewClasses.jsp

This page was developed to enable users to view all the existing classes in the MySQL database. This JSP page replaced the AllClassesController servlet to enhance user experience.

ViewParticipants.jsp

This page was developed to enable users to view all the existing participants in the MySQL database. This JSP page replaced the AllParticipantsController servlet to enhance user experience.

Building and Running the Project on Apache Tomcat

This web application was built and run on Tomcat v10.1 Server.

Packaging the Project using Maven Package Goal

This web application was packaged using Maven Package Goal in Eclipse. The corresponding JAR file can be found in the target folder within the folder structure of the app.

Final Thoughts

Dance Class

Developing this web application has equipped me with hands-on experience in backend development. I've learned to plan and implement server-side controllers using servlets and manage database connections for CRUD operations. This project has enhanced my skills in solving real-world problems and laid a solid foundation for future endeavors in backend development.