The main goal of this project is to gain experience with major web application technologies such as microservices
, RabbitMQ
, Pusher
, PostgreSQL
, AI assistant
, Vue
, and Shadcn
.
The core business logic of the project is as follows:
A user can import a CSV
file to fill or update the product database.
An AI assistant analyzes the file and automatically configures the correct import settings based on the file’s structure.
The user has a simple dashboard displaying a product table and a form to upload import files.
bash install-with-docker.sh
Add your GEMINI_API_KEY
to the Import/.env
file
Get an api key. Its free ;)
Configure the following variables in Admin/.env
.
Sign up and get access Its free also :)
PUSHER_APP_ID=
PUSHER_APP_KEY=
PUSHER_APP_SECRET=
PUSHER_APP_CLUSTER=
PUSHER_PORT=
PUSHER_SCHEME=
nano /etc/hosts
# Insert
# 127.0.0.1 product-base.loc
# 127.0.0.1 import.loc
127.0.0.1 admin.loc
bash run-services.sh
Go to your browser and visit admin.loc
or 127.0.0.1
if you didnt setup hosts
Download the collection file and import it into Postman: File
Download a test CSV file here: Downlod csv file
# Restart all services (useful for applying
# codebase changes related to queues and AMQP listeners)
bash restart-services.sh
# Stop all services
bash stop-services.sh
docker exec admin-app composer test
docker exec import-app composer test
docker exec product-base-app composer test
Extra goals
- Add Grafana for collecting microservice logs
- Add a profiler for monitoring resource usage