Project Overview

A dynamic full stack website

Purpose

This project demonstrates a professional-grade pizza ordering web application built to highlight modern web development and deployment skills. It includes features for both customers and employees, with role-based access to specific pages and functions. The goal is to showcase full-stack development, cloud hosting, and secure application design.

Sample Image

Amazon Web Services

The application is deployed using Amazon EC2 for hosting and Amazon RDS for database management. AWS provides reliable, scalable infrastructure, allowing the project to simulate a real-world production environment with cloud-based services and remote access.

Sample Image

Spring Boot and Thymeleaf

Spring Boot powers the backend of the application, offering a structured and efficient framework for building RESTful services and managing application logic. Thymeleaf is used on the frontend to dynamically render HTML pages with server-side data, allowing for seamless integration between logic and layout.

Sample Image

AJAX and Javascript

AJAX is used to enable asynchronous page updates, allowing users to interact with the application without full page reloads. JavaScript handles client-side logic, enhancing the user interface and improving responsiveness during tasks like form submission and data updates.

Sample Image

RESTful Services

The application follows RESTful architecture to structure communication between frontend and backend. Each HTTP request targets a clearly defined endpoint, ensuring maintainability, scalability, and a clean separation of concerns across different components of the system.

Sample Image

PostGRE Database on AWS RDS

All persistent data—such as orders, employee information, and user roles—is stored in a PostgreSQL database hosted on Amazon RDS. This setup allows for a production-level database experience, with secure, reliable access from the Spring Boot application.

Sample Image

Security

Security is implemented using Spring Security to handle authentication and authorization. Passwords are encrypted with BCrypt, and different user roles (EMPLOYEE, MANAGER, ADMIN) are granted access to specific parts of the application. This ensures data protection and proper access control.

Sample Image