Vetrina is a full-stack e-commerce management platform built with Angular, Spring Boot, MySQL, and a Python AI service. It brings together product browsing, carts, orders, customer management, analytics, reviews, store administration, and an AI assistant for data-aware business questions.
- Role-based authentication for
ADMIN,CORPORATE, andUSERaccounts - Product catalog with product detail pages, categories, and admin product workflows
- Cart and order management
- Customer, review, shipment, and profile management
- Corporate dashboard and analytics views with Chart.js visualizations
- Admin panels for users, stores, categories, settings, audit logs, and reports
- AI assistant powered by FastAPI and LangGraph for guided analytics and SQL-backed answers
- MySQL database bootstrap with Docker Compose
| Layer | Technology |
|---|---|
| Frontend | Angular 21, TypeScript, SCSS, RxJS, Chart.js |
| Backend | Java 17, Spring Boot, Spring Security, Spring Data JPA, JWT |
| Database | MySQL 8 |
| AI Service | Python, FastAPI, LangGraph, Groq, pandas, Plotly |
| Tooling | Maven, npm, Docker Compose |
.
+-- frontend/ # Angular application
+-- backend/ # Spring Boot REST API
+-- ai-service/ # FastAPI AI assistant service
+-- database/ # MySQL Docker Compose and initialization SQL
+-- docs/ # Project documentation and technical report
`-- init_db.sql # Root-level database initialization script
- Node.js and npm
- Java 17
- Maven, or the included Maven wrapper
- Docker and Docker Compose
- Python 3.10 or newer
git clone <repository-url>
cd ECommerceProjectcd database
docker compose up -dThe database runs on localhost:3307 and creates the ecommerce_db schema. Default local credentials are:
username: root
password: root
cd ../backend
./mvnw spring-boot:runOn Windows PowerShell:
.\mvnw.cmd spring-boot:runThe API runs at http://localhost:8080.
The AI assistant is optional for the core store flows, but required for /api/ai chat features.
cd ../ai-service
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
uvicorn main:app --reload --port 8000On Windows PowerShell:
cd ..\ai-service
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -r requirements.txt
uvicorn main:app --reload --port 8000If your AI provider requires secrets, add them in ai-service/.env.
cd ../frontend
npm install
npm run startOpen http://localhost:4200.
The Angular dev server uses frontend/proxy.conf.json to forward:
/apitohttp://localhost:8080/api/aitohttp://localhost:8000
cd frontend
npm run start
npm run build
npm run testcd backend
./mvnw test
./mvnw spring-boot:runcd database
docker compose up -d
docker compose downBackend configuration lives in backend/src/main/resources/application.properties.
Important local defaults:
spring.datasource.url=jdbc:mysql://localhost:3307/ecommerce_db
spring.datasource.username=root
spring.datasource.password=root
app.internal.secret=super-secret-internal-key-12345For production or shared deployments, replace local database credentials, JWT-related secrets, Stripe keys, and internal service secrets with environment-specific secure values.
The backend includes SpringDoc OpenAPI support. After starting the backend, check:
http://localhost:8080/swagger-ui.html
Depending on the SpringDoc route mapping, the UI may also be available at:
http://localhost:8080/swagger-ui/index.html