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.
Web App Demo
Project Structure in Eclipse
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
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.