A full-stack web application for scheduling, locating, editing, and managing appointment records through a browser-based interface.
Built with Java 21, Spring Boot, Spring Data JPA, Thymeleaf, MySQL, Bootstrap 5, Maven.
Note: The application is hosted on Render. The first load may take a moment if the service has been inactive.
The Appointment Scheduler Java App was developed as part of a multi-phase Software Development Life Cycle project.
The application provides user-facing appointment-management tools and an administrative dashboard for reviewing, searching, filtering, editing, and cancelling records. It demonstrates full-stack development, layered architecture, database integration, business-rule validation, and server-rendered user interfaces.
- Schedule a new appointment
- Locate appointments using an email address and phone number
- View matching appointment records
- Edit only verified appointments
- Cancel only verified appointments
- Log in through an administrative portal
- View dashboard summary cards
- Review all appointment records
- Search and filter appointment data
- Edit any appointment record
- Cancel any appointment record
- Correct user contact information without forcing unnecessary changes to other fields
- Java 21
- Spring Boot
- Spring Data JPA
- Thymeleaf
- Maven
- Thymeleaf
- HTML
- CSS
- Bootstrap 5
- MySQL for local development
- PostgreSQL for the deployed Render environment
- Render
- PostgreSQL production database hosted for the live application
- Git
- GitHub
- IntelliJ IDEA
- draw.io
The application uses a layered architecture that separates request handling, business logic, data access, and presentation.
Browser ↓ Controller Layer ↓ Service Layer ↓ Repository Layer ↓ Database
- Controller layer: Handles browser requests and routes users to the appropriate views.
- Service layer: Contains business logic and appointment-management rules.
- Repository layer: Communicates with the MySQL database through Spring Data JPA.
- Database layer: Uses MySQL for local development and PostgreSQL for the deployed Render environment.
- Presentation layer: Uses Thymeleaf templates and Bootstrap styling to render the user interface.
src/main/java/com/user/appointmentscheduler
controller
model
repository
service
src/main/resources
templates
static/css
application.properties
- Home / Schedule Appointment Form
- Find My Appointments
- Admin Login
- Admin Dashboard
- All Appointments
- Edit Appointment
- Admin Edit Appointment
- Access Denied
Install the following before running the project:
- Java 21
- Maven
- MySQL
- Git
- Clone the repository: git clone https://github.com/wadrien-dev/appointment-scheduler-java.git
- Open the project folder: cd appointment-scheduler-java
- Create a MySQL database for the application.
- Update the database configuration in: src/main/resources/application.properties
- Run the application: mvn spring-boot:run
- Open the application in your browser: http://localhost:8080
This project strengthened my experience with:
- Java backend development
- Spring Boot application structure
- Database-driven web applications
- Spring Data JPA repositories
- Layered architecture
- Business-rule validation
- Search and filtering functionality
- Server-rendered interfaces with Thymeleaf
- Responsive styling with Bootstrap
- Git and GitHub version control
- SDLC planning and technical documentation
- Application deployment
- Configuring separate local and production database environments
- Deploying a Spring Boot application with PostgreSQL on Render
- Integrate Spring Security
- Store role-based authentication details in the database
- Add email notifications
- Add calendar integration
- Implement audit logging
- Add pagination
- Expand administrative analytics
- Add automated unit and integration tests
- Strengthen validation and exception handling
- Configure a persistent production database
Computer Science Graduate | Junior Software Developer | Application Support | QA Testing