Skogsräven is an e-commerce web application with a containerized backend consisting of microservices. Front and backend can be run separately, while the backend is further divided into individual services for products, categories, orders, users and notifications.
- Typescript
- React
- CSS
- Zustand
- Node.js
- Express
- Docker
- RabbitMQ
- Redis
- MongoDB
- K8s
- Bcrypt
- Mongoose
run docker-compose up to start the whole application in one go.
The application will be available at:
- Frontend: http://localhost:4173
- RabbitMQ Management: http://localhost:15673
- MongoDB: http://localhost:27018
Seed initial data for categories, products and a user with cd backend/common && npm run seed. You can then log in using the credentials: username [email protected], password: pw.
To stop all services, run docker-compose down.
- run
npm installfrom the frontend folder to install the dependencies. - to start the frontend only, run
npm start.
- run
npm installfrom each of the service folders (product-service,category-service,order-service,user-serviceandnotification-service.), as well as thecommonfolder within the backend. - run
npm startfor each of the services you want to run respectively - run
docker run -d --name rabbitmq -p 5673:5672 -p 15673:15672 rabbitmq:3-managementto start RabbitMQ - run
docker run -d --name redis -p 6380:6379 redis:latestto start redis - run
docker run -d --name mongodb -p 27018:27017 -v mongodb_data:/data/db mongo:latestto start MongoDB
- Frontend: 4173
- User Service: 3001
- Product Service: 3002
- Order Service: 3003
- Notification Service: 3004
- Category Service: 3005
- RabbitMQ: 5673 (AMQP), 15673 (Management UI)
- Redis: 6380
- MongoDB: 27018
This is a learning/demo project. Do not use in production. All credentials and secrets are for demonstration purposes only.
