
Metsenat-API is a RESTful API designed for managing sponsorships and donations, facilitating transparent interactions between donors and recipients.
- User authentication and authorization
- Sponsor and student management
- Donation tracking and reporting
- Secure and optimized API endpoints
Ensure you have the following installed:
- Python 3.9+
- PostgreSQL (or any preferred database)
- Docker (optional but recommended)
-
Clone the repository:
git clone https://github.com/theMirmakhmudov/Metsenat-API.git cd Metsenat-API
-
Create a virtual environment:
- Windows
python -m venv venv venv\Scripts\activate
- Mac/Linux
python3 -m venv venv source venv/bin/activate
- Windows
-
Install dependencies:
pip install -r requirements.txt
-
Configure environment variables:
- Copy
.env.example
to.env
- Update database and secret key values accordingly
- Copy
Run the following commands to set up the database:
python manage.py makemigrations
python manage.py migrate
make mig
-
Windows, Mac, Linux:
python manage.py runserver
make run
Metsenat-API/
│── manage.py # Django management script
│── .env.example # Environment variables example
│── requirements.txt # Python dependencies
│── Dockerfile # Docker configuration
│── docker-compose.yml # Docker Compose setup
│── config/ # Project configuration files
│ ├── settings.py # Django settings
│ ├── urls.py # URL routing
│── api/ # Main API application
│ ├── admin.py # Admin configuration
│ ├── apps.py # App configuration
│ ├── managers.py # Custom model managers
│ ├── models.py # Database models
│ ├── serializers.py # API serializers
│ ├── tests.py # Unit tests
│ ├── urls.py # API routes
│ ├── views.py # API views
│── docs/ # API documentation
│── media/ # Uploaded media files
│ ├── avatar/
│ ├── student/
│ ├── default-student.webp
│── Metsenat/ # Core project settings
│ ├── asgi.py # ASGI configuration
│ ├── settings.py # Project settings
│ ├── urls.py # Root URL configuration
│ ├── wsgi.py # WSGI configuration
│── LICENSE # Project license
│── README.md # Project documentation
│── Makefile # Automation scripts

Method | Endpoint | Description |
---|---|---|
GET | /api/sponsors/ |
List sponsors |
POST | /api/sponsors/ |
Create a sponsor |
GET | /api/students/ |
List students |
POST | /api/students/ |
Register a student |
📖 Full API documentation is available via Swagger UI at:
http://localhost:8000/api/docs/
- Build and run the container:
docker-compose up --build -d
- Run database migrations:
docker-compose exec web python manage.py migrate
- Use Gunicorn for running the Django application.
- Set up Nginx as a reverse proxy for handling requests efficiently.
- Store sensitive credentials in environment variables.
- Use Django's built-in security middleware.
- Regularly update dependencies.
Contributions are welcome! Please follow these steps:
- Fork the repository.
- Create a feature branch.
- Commit changes.
- Submit a pull request.
This project is licensed under the MIT License.
- Author: theMirmakhmudov
- Email: mr.mirmakhmudov16112008@gmail.com
Enjoy using Metsenat-API! 🎉