EN - English (Versão em Português Brasil aqui)
The project's proposal was to create a vehicle catalog on a public page where it is possible to see registered vehicles and only the logged-in administrator can change, create and delete cars from the catalog.
All layers of the application (Models, Service and Controllers) were developed where it is possible to perform the basic operations on a given database: Creation, Reading and Deletion (or CRUD, for the most intimate 😜).
Endpoints were created to read and write in a database, using MySql.
A Front-End was developed with React to access endpoints and apply business rules together with the Back-End
- ✅EndPoint for vehicle registration, using the POST method
- ✅EndPoint to list registered vehicles using the GET method.
- ✅EndPoint with data filter and pagination, using the GET method
- ✅EndPoint to list all vehicles, using the GET method
- ✅EndPoint for user login, using the POST method.
- ✅CRUD validations, user using token with JWT.
- ✅Manipulation and persistence of data using MySql database.
- ✅Componentized database using Docker.
🐳 Running all project dependencies
1.26.0
with 1.29.2
.
ℹ️ Run the
backend
,frontend
anddb
services with the command:
docker-compose up -d --build
-
Remember to stop
mysql
if you are using it locally on the default port (3306
), or adapt it, if you want to use the application in containers; -
These services will initialize a container named
backend_vheicles_catalog
,fontend_vheicles_catalog
and another nameddb_vheicles_catalog
; -
From here you can access the application at
http://localhost:3000
; -
The back-end endpoints are found at
http://localhost:5099
; -
⚠️ Attention: Do not run the npm audit fix command! It updates several project dependencies, and this update causes conflicts. -
✨ Tip: The
Remote - Containers
extension is indicated so that you can develop your application in the Docker container directly in VS Code, as you do with your local files.
🏦 Users and Passwords
The application has a pre-registered default user and password and with its admin permissions activated in the bank. Use to test the application.
Email: admin@admin.com
Password: @Admin123
The database uses docker already with the environment and data persistence variables, but below are the variables for a local configuration.
MYSQL_DATABASE: vehicleCatalog
MYSQL_USER: root
MYSQL_PASSWORD: password
MYSQL_HOST: localhost
MYSQL_ROOT_PASSWORD: password