This project is a simple web application for restaurant services such as online orders and reservations. Moreover, the application is also an informational card for the restaurant. It is a complete system with a backend written in Java and a frontend written in Angular. The application provides the layout for a guest, user, and admin.
This project was made to learn the Angular framework and make me more familiar and skilled with the Java Spring Boot framework.
- The backend is a read-to-use complete application
- The frontend is not completely finished. There are missing layout features for guest and admin view. Moreover, the frontend source code may be significantly improved.
The application layout (guest view):
The system uses:
- For backend:
- Java 17
- Java Spring Boot 3.0.1
- Lombok library 1.18.24
- JSON Web Token library 0.9.1
- Jaxby XML API 2.3.1
- MongoDB
- For frontend:
- Typescript, CSS, HTML
- Angular
The key features of this application:
- JWT authentication method
- CORS configured to apply only certain requests
- First of all clone the repository:
mkdir restaurant
cd restaurant
git clone https://github.com/kbarszczak/Restaurant_web .
- The next step is to download all dependencies and create jar file for the backend:
cd restaurant_backend
mvn clean install
- Now create a docker image for the backend app:
docker build -t restaurant-api .
- The last thing in the backend setup is to run all required images:
docker compose up -d
From now on the MongoDB, Mongo Express, and the restaurant backend are set up and accessible under the specified in the docker-compose.yml file ports.
- The next step is to run the frontend app. To do so do the following:
cd ../restaurant_frontend
npm install
ng serve --port 9091
Henceforth our restaurant is accessible under the url: localhost
- clone the repository
- either make the changes or implement missing code
- create the pull request with a detailed description of your changes