This is an Online restaurant web application built using Java and the Spring Framework. The application provides functionality for users, admins, chefs, and waiters to interact with the system. It follows a layered architecture with controllers, services, DAOs, and entities. The frontend is implemented using JSP, and the backend leverages Spring MVC and Hibernate.
- Secure login and registration system.
- Profile updates and password management.
- Role-based authentication for different users (Admin, Chef, Waiter, User).
- Users can browse and order items from the restaurant menu.
- Orders are processed and managed efficiently.
- Items can be added, updated, or removed by authorized users.
- Admins can manage users, orders, and restaurant settings.
- Chefs can view and update the cooking status of orders.
- Waiters can manage restaurant tables and assist in order fulfillment.
- Manage restaurant table bookings.
- Assign orders to specific tables.
- Ensure table availability and status tracking.
- Input validation for user registration, order details, and form submissions.
- Custom exception handling for error management.
- Secure password storage using encryption.
- Protection against common security vulnerabilities.
- Role-based access ensures only authorized users perform specific tasks.
- Backend: Java, Spring MVC, Hibernate
- Frontend: JSP, CSS
- Database: SQL
- Build Tool: Gradle
- Security: Encryption utilities
.
├── README.md
├── build.gradle
├── settings.gradle
├── src
│ ├── main
│ │ ├── java
│ │ │ └── net.therap.estaurant
│ │ │ ├── controller (Handles HTTP requests)
│ │ │ ├── service (Business logic implementation)
│ │ │ ├── dao (Data Access Layer)
│ │ │ ├── entity (Database entities)
│ │ │ ├── exception (Custom exception handling)
│ │ │ ├── filter (Request filters)
│ │ │ ├── propertyEditor (Data conversion utilities)
│ │ │ ├── util (Helper classes, encryption, etc.)
│ │ │ ├── validator (Form and data validation)
│ │ ├── resources
│ │ │ ├── messages.properties (Internationalization support)
│ │ │ ├── META-INF/persistence.xml (Database configuration)
│ │ ├── webapp
│ │ ├── WEB-INF (Spring and JSP configuration)
│ │ ├── assets (CSS, images, and static content)
- Java 17+
- Gradle
- Database (MySQL/PostgreSQL/SQLite based on configuration)
- Tomcat or any servlet container
- Clone the repository:
git clone https://github.com/Nadim-Mahmud/e-restaurant-xml.git cd e-restaurant-xml - Configure the database in
persistence.xml. - Build the project using Gradle:
./gradlew build
- Deploy the WAR file to Tomcat or run locally:
./gradlew bootRun
- Access the application at
http://localhost:8080.