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.shAdd 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.locbash run-services.shGo 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.shdocker exec admin-app composer test
docker exec import-app composer test
docker exec product-base-app composer testExtra goals
- Add Grafana for collecting microservice logs
- Add a profiler for monitoring resource usage