Herb trading service store based on Beta Reputation System.
Clone the project
git clone https://github.com/WallyS02/The-PlugBefore you begin, ensure that you have the following tools installed on your system:
Go to the project directory
cd The-PlugRun docker-compose-local.yml with docker compose up
docker-compose -f docker-compose-local.yml up Before running backend locally, ensure you have the following prerequisites installed on your system:
- Python 3.11 - Download and Install Python 3.11
Go to the project directory
cd backend/the_plug_backend_djangoBefore running backend locally run Postgres database in docker container
docker-compose -f docker-compose-local.yml up -d dbInstall requirements
pip install -r requirements.txtMake migrations and migrate
python manage.py makemigrations
python manage.py migrate
python manage.py loaddata api/fixtures/herbs.jsonRun application
python manage.py runserver 0.0.0.0:8080
Once the application is running, you can access it locally by navigating to http://localhost:8080.
Before running frontend locally, ensure you have the following prerequisites installed on your system:
- Node.js and npm - Download and Install Node.js
Go to the project directory
cd frontend/the_plug_svelte_frontendInstall dependencies
npm installRun the Development Server
npm run devThis will start the development server, and you can access the application at http://localhost:80 in your web browser.
- .github - directory that contains GitHub Actions pipelines
- ansible - directory that contains Ansible configurations that can be used in project
- aws - directory that contains AWS cloud architecture for application and it's implementation using IaC practise with Terraform
- azure - directory that contains Azure cloud architecture implementation using IaC practise with Terraform
- backend - directory that contains backend application code
- documentation - directory that contains application design and it's diagrams
- frontend - directory that contains frontend application code
- jenkins - directory that contains local Jenkins configuration files
- k8s - directory containing Minikube cluster and k8s application configuration
- azure-backend - Kubernetes manifests prepared to deploy in Azure cloud for The Plug
- cluster-setup - directory that contains cluster configurations (including NGINX Ingress Controller, Prometheus, Grafana and Loki monitoring) and scripts that run and configure cluster
- helm - directory that contains Helm charts for application
- raw - directory that contains raw Kubernetes manifests for application
- .gitlab-ci.yml - main GitLab CI/CD pipeline, which uses gitlab-ci-local, that triggers child pipelines located in backend, frontend and k8s subdirectories
- docker-compose-local.yml - docker-compose file that allows running application locally
- prepare project design
- create backend application
- create frontend application
- create Docker images
- create Kubernetes (raw + Helm) deployment
- prepare AWS cloud architecture
- create example unit, integration, e2e and performance tests
- create IaC Terraform configuration for application's AWS cloud
- create GitHub Actions, GitLab CI/CD (gitlab-ci-local) and Jenkins CI/CD pipelines
- complete final README
- @WallyS02 everything