https://github.com/allajahzan/crud-with-microservices
It's a CRUD application build with microservices. Node JS, Express JS and Mongodb used for services, and gRPC, Rabbitmq used for communications.
https://github.com/allajahzan/crud-with-microservices
express-ta grpc mongodb nginx node-js rabbitmq react-js tailwind-css typescript
Last synced: 3 months ago
JSON representation
It's a CRUD application build with microservices. Node JS, Express JS and Mongodb used for services, and gRPC, Rabbitmq used for communications.
- Host: GitHub
- URL: https://github.com/allajahzan/crud-with-microservices
- Owner: allajahzan
- Created: 2024-11-16T15:00:31.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-11-22T12:00:35.000Z (over 1 year ago)
- Last Synced: 2025-03-12T00:35:30.132Z (over 1 year ago)
- Topics: express-ta, grpc, mongodb, nginx, node-js, rabbitmq, react-js, tailwind-css, typescript
- Language: TypeScript
- Homepage:
- Size: 743 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# CRUD Application with Microservices
This is a CRUD application designed with React, TypeScript, Tailwind CSS, and Flowbite, utilizing a Microservices Architecture.
## The application is composed of the following services:
- Auth Service: Handles authentication and authorization.
- User Service: Manages user data and operations.
- Admin Service: Provides administrative functionalities such as user management.
- Notification Service: Handles user notifications.
## How to Run the Application
You can run this application either locally or using Docker Compose. Follow the instructions below for each approach:
## A) Running Locally
1. Clone the Repository:
```bash
git clone https://github.com/your-repo-name.git
cd your-repo-name
```
2. Change Hostnames in the Nginx config file as host.docker.internal.
```bash
server host.docker.internal:3000;
```
```bash
server host.docker.internal:3001;
```
```bash
server host.docker.internal:3002;
```
3. Start Nginx:
```bash
docker build -t nginx-container ./nginx
docker run -d -p 80:80 --name nginx-container nginx-container
```
4. Change RabbitMq Connection URL (Admin, User, Auth):
```bash
const amqpServer = 'amqp://localhost:5672';
```
5. Run Each Service Locally:
```bash
cd services/service-name
npm run dev
```
6. Access the Application: http://localhost:5173
## B) Running with Docker Compose
1. Clone the Repository:
```bash
git clone https://github.com/your-repo-name.git
cd your-repo-name
```
2. Change Hostnames in the Nginx config file as host.docker.internal.
```bash
server auth:3000
```
```bash
server admin:3000
```
```bash
server user:3000
```
3. Change RabbitMq Connection URL (Admin, User, Auth):
```bash
const amqpServer = 'amqp://rabbitmq:5672';
```
4. Start the Application:
```bash
docker-compose up --build
```
5. Access the Application: http://localhost:5173
If you have any questions or need assistance, feel free to open an issue on GitHub.
🚀 Thank you!