Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/monamoxie/metton-app
A multi-functional full-stack app written in Python for managing booking appointments. It provides the ability to receive instant notifications, manage calendar and adapt schedules on-the-go.
https://github.com/monamoxie/metton-app
aws celery django django-rest-framework docker ec2 elastic-container-service fargate gunicorn nextjs nginx postgres python rabbitmq react typescript
Last synced: about 1 month ago
JSON representation
A multi-functional full-stack app written in Python for managing booking appointments. It provides the ability to receive instant notifications, manage calendar and adapt schedules on-the-go.
- Host: GitHub
- URL: https://github.com/monamoxie/metton-app
- Owner: Monamoxie
- Created: 2023-08-14T07:45:10.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2024-10-29T08:56:58.000Z (3 months ago)
- Last Synced: 2024-10-29T10:05:09.491Z (3 months ago)
- Topics: aws, celery, django, django-rest-framework, docker, ec2, elastic-container-service, fargate, gunicorn, nextjs, nginx, postgres, python, rabbitmq, react, typescript
- Language: Python
- Homepage:
- Size: 30.8 MB
- Stars: 2
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Security: SECURITY.md
Awesome Lists containing this project
README
# METTON
A full-stack web app powered by Python and Django, designed to provide seamless and efficient calendar management solution.
Whether you are a solopreneur, SME, or a startup, Metton helps you optimize your schedules, enhance client interactions, and drive your business forward.
[![Github Actions](https://github.com/Monamoxie/metton-python-utility-scheduler/actions/workflows/metton.yml/badge.svg)](https://github.com/Monamoxie/metton-python-utility-scheduler/actions/workflows/metton.yml)
## Technology Stack
- Python
- RabbitMQ / Celery
- PostgreSQL
- Docker
- Django
- Gunicorn
- Nginx
- TypeScript
- React Js
- Next Js
- Material UI## PRODUCTION ARCHITECTURE
This project is currently in alpha stage. More components are continuosly being added or dropped as the need arises.
## DEV Setup
- Clone repo
- Run `cp env.example .env` and fill up details as desired
- Run `chmox +x ./.shell/python_entrypoint.sh`
- Run `docker-compose up --build -d --wait`
- Visit http://127.0.0.1:8080
- For local setup, you make use of the RabbitMQ and PostgreSQL docker images
- In production, we take advantage of AWS infrastrures by using MQ and RDS## WORKFLOW
- The entire application is fully `containerised`.
- For `scaling and efficiency` in PROD, I'm taking advangtage of AWS Managed Services for certain components like the Database and Message Queues.
- For a complete overview of container services available on PROD, please check this file: `ecs-task-definition.json`
- While for a complete overview of container services available on DEV, please check the docker compose file: `docker-compose.yaml`
- `Nginx` acts as a reverse proxy; For Development, this is made possible through port 8080 on the Host machine & port 80 in the container. You can always configure or change this from your `.env` config
- `Nginx` also serves static contents & routes incoming requests to `Gunicorn`
- Django through `Gunicorn` serves the main app on port 8000. The `Python` container EXPOSES port 8000 for this purpose.
- `collectstatic` uses /var/www/static as static volume in PROD. But you don't have to worry about this during development, as Django would serve the assets directly from core/static
- `Python` and `Nginx` both share the same static volume
## UI Components
- Material UI
- Magic UI## License
[MIT license](https://opensource.org/licenses/MIT).