Eat N Treat
Restaurant & Workshop Management System
Overview
Eat N Treat is a comprehensive full-stack web application designed to streamline restaurant and workshop management operations. The system provides dual functionality: a customer-facing booking platform for restaurant reservations and a robust backend user management system (UMS) for administrative control.
Built with enterprise-grade technologies, this application demonstrates proficiency in modern web development practices including JWT-based authentication, RESTful API design, responsive UI, and secure database operations.
Technologies Used
Frontend
- • Angular 20.x - Modern SPA framework
- • TypeScript - Type-safe development
- • RxJS - Reactive programming
- • Angular Material - UI components
- • Angular Forms - Reactive forms
Backend
- • Java 17 - Backend language
- • Spring Boot 3.5.3 - Enterprise framework
- • Spring Security - Authentication & authorization
- • JWT (JSON Web Tokens) - Secure auth
- • Spring Data JPA - ORM layer
- • PostgreSQL - Relational database
- • Maven - Dependency management
Key Features
Customer Booking System
Intuitive restaurant reservation platform allowing customers to book tables, select time slots, and manage their reservations with real-time availability updates.
User Management System (UMS)
Comprehensive admin dashboard for managing users, roles, and permissions with full CRUD operations. Includes user authentication, role-based access control (RBAC), and audit logging.
JWT Authentication
Secure stateless authentication using JSON Web Tokens with token refresh mechanism, password encryption using BCrypt, and protected API endpoints.
Workshop Management
Specialized module for managing workshop schedules, participant registrations, resource allocation, and automated notifications for upcoming events.
RESTful API Architecture
Well-structured REST APIs with proper HTTP methods, status codes, error handling, and API documentation. Includes validation, pagination, and filtering capabilities.
System Architecture
Frontend Architecture
• Component-based architecture with lazy loading
• Service layer for API communication
• Guards for route protection
• Interceptors for JWT token handling
Backend Architecture
• Layered architecture (Controller → Service → Repository)
• Entity-DTO pattern for data transfer
• Security filters for authentication
• JPA entities with proper relationships
Technical Highlights
Security Features
BCrypt password hashing, CORS configuration, CSRF protection, and SQL injection prevention
Database Design
Normalized schema with proper indexing, foreign key constraints, and optimized queries
API Design
RESTful endpoints with proper HTTP methods, versioning support, and comprehensive error handling
Validation
Server-side validation with Bean Validation API and client-side Angular form validators
Challenges & Solutions
Challenge: JWT Token Management
Handling token expiration and refresh across multiple Angular applications while maintaining security.
Solution: Implemented HTTP interceptors in Angular to automatically attach tokens to requests and handle 401 responses with token refresh logic.
Challenge: Real-time Booking Conflicts
Preventing double bookings when multiple users attempt to reserve the same time slot simultaneously.
Solution: Implemented database-level constraints and optimistic locking with version control to handle concurrent booking requests.
Challenge: Role-Based Access Control
Creating a flexible permission system that works across both frontend and backend.
Solution: Developed a hierarchical role system using Spring Security with method-level security annotations and Angular route guards.
Project Outcome
Eat N Treat successfully demonstrates enterprise-level full-stack development capabilities. The application showcases proficiency in Angular frontend development, Spring Boot backend architecture, PostgreSQL database design, and modern authentication mechanisms.