This project is an implementation of a stack based on Docker (docker-compose) using MongoDB, PostgreSQL, Express JS (Node.js), Flask, Jupyter, and more.
- MongoDB: NoSQL database
- PostgreSQL: Relational database
- Express JS (Node.js): Web framework for Node.js
- Flask: Micro web framework for Python
- Jupyter: Interactive computing environment
- PgAdmin: Web-based PostgreSQL administration tool
- Adminer: Database management tool
- Ollama: AI model hosting and management
- Ollama WebUI: Web interface for managing AI models
RestaurantReviewApp/
├── docker-compose.yml # Docker-Compose file for all the stacks
├── READNE.MD # README markdown file
├── LICENSE # license file
├── app-flask/
│ ├── app.py # Flask App file
│ ├── assets/ # Asset files such as image
│ └── template/ # Flask templates
│
├── backups/ # DB Backup folder
│
├── docker/ # Docker file for jupyter and flask applications
│ ├── flask/
│ │ └── Dockerfile # Dockerfile for Flask
│ └── jupyter/
│ └── Dockerfile # Dockerfile for jupyter notebooks
│
├── files/
│ └── work/ # Default workspace for Jupyter notebooks
│
├── requirements/
│ ├── flask/
│ │ └── requirements.txt # requirements.txt file for flask
│ └── jupyter/
│ └── requirements.txt # requirements.txt file for jupyter
│
├── server/
│ ├── server.ts # NodeJS Server file
│ ├── app.ts # NodeJS App file
│ └── src/
│ ├── batchjob/ # Folder for scheduler jobs
│ ├── db/ # Folder for Database related file such as models, migrations, and attributes
│ ├── moduels/ # Swagger module for API document
│ ├── services/ # Service files folder for queries
│ └── v1/ # Folder for backend API controllers
│
├── ~/Documents/ollama/code # Ollama Code folder
├── ~/Documents/ollama/ollama # Ollama Server folder
└── ~/Documents/ollama/ollama-webui # Ollama WebUI folder
# Clone the repository
git clone git@github.com:wendyluu01/RestaurantReviewApp.git
# Move to the project directory
cd RestaurantReviewApp/
# Build and run the containers
docker-compose up -d
# Stop and remove the containers
docker-compose down- Web Interface (Mongo Express): http://localhost:8082
- Connection String:
from pymongo import MongoClient client = MongoClient('mongodb://admin:PassW0rd@apan-mongo:27017/')
- Web Interface (PgAdmin): http://localhost:5080
- Connection Details:
Hostname: apan-postgres Port: 5432 Database: db Username: admin Password: PassW0rd
- Web Interface: http://localhost:8899
- Web Interface: http://localhost:9080
- Web Interface: http://localhost:5010
- API Endpoint: http://localhost:37869
- Web Interface: http://localhost:38080
- Docker Network: All services are connected via a custom Docker network
apan-net. - Volumes: Persistent data storage is managed using Docker volumes.
For more detailed information on each service, please refer to the respective documentation.