Skip to content

wadrien-dev/appointment-scheduler-java

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Appointment Scheduler Java App

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.

Live Demo

Open the live application

Note: The application is hosted on Render. The first load may take a moment if the service has been inactive.

Overview

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.

Features

User Features

  • 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

Admin Features

  • 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

Tech Stack

Backend

  • Java 21
  • Spring Boot
  • Spring Data JPA
  • Thymeleaf
  • Maven

Frontend

  • Thymeleaf
  • HTML
  • CSS
  • Bootstrap 5

Databases

  • MySQL for local development
  • PostgreSQL for the deployed Render environment

Deployment

  • Render
  • PostgreSQL production database hosted for the live application

Development Tools

  • Git
  • GitHub
  • IntelliJ IDEA
  • draw.io

Architecture

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.

Project Structure

src/main/java/com/user/appointmentscheduler
    controller
    model
    repository
    service

src/main/resources
    templates
    static/css
    application.properties

Key Screens

  • Home / Schedule Appointment Form
  • Find My Appointments
  • Admin Login
  • Admin Dashboard
  • All Appointments
  • Edit Appointment
  • Admin Edit Appointment
  • Access Denied

Screenshots

Home Page

Screenshot 2026-05-03 175417 Screenshot 2026-05-03 175505

Find My Appointments

Screenshot 2026-05-03 182434

Admin Login

image

Admin Dashboard

image

All Appointments

image

Edit Appointment

image image

Run the Project Locally

Prerequisites

Install the following before running the project:

  • Java 21
  • Maven
  • MySQL
  • Git

Installation

  1. Clone the repository: git clone https://github.com/wadrien-dev/appointment-scheduler-java.git
  2. Open the project folder: cd appointment-scheduler-java
  3. Create a MySQL database for the application.
  4. Update the database configuration in: src/main/resources/application.properties
  5. Run the application: mvn spring-boot:run
  6. Open the application in your browser: http://localhost:8080

What This Project Demonstrates

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

Future Improvements

  • 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

Author

Woodna Adrien

Computer Science Graduate | Junior Software Developer | Application Support | QA Testing

About

Full-stack appointment scheduling application built with Java, Spring Boot, Spring Data JPA, Thymeleaf, MySQL, Bootstrap, and Maven.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages