VaxPlus is a secure and scalable RESTful API built using Django and Django REST Framework. This system allows users to register, book vaccination slots, view vaccine details, and manage appointments efficiently. It also includes admin-level capabilities to manage vaccine centers, doses, and more.
- 🔗 Base URL – https://vaxplus-backend.vercel.app/api/v1/auth/
- 🔗 API Root – https://vaxplus-backend.vercel.app/api/v1/
- JWT Authentication – Secure, token-based login and access management
- Email Activation – Automatic account activation via email upon registration
- User Management – Register, log in, and manage user profiles
- Campaign Management – Full CRUD operations for vaccination campaigns
- Vaccination Centers – Create, update, and manage vaccine center details
- Booking System – Book, reschedule, or cancel vaccination appointments
- Payment Integration (SSLCommerz) – Secure online payments for vaccination booking
- Admin Panel – Manage users, vaccine info, and appointment data
- Advanced Filters – Filter campaigns by category, date, status, and more
- Search & Ordering – Search by campaign or vaccine title and description; order by date or relevance
- API Documentation – Integrated Swagger and ReDoc for easy API exploration
- Backend: Django 5.2.1
- REST Framework: DRF 3.16.0
- Authentication: JWT (SimpleJWT), Djoser
- Docs: drf-yasg (Swagger/ReDoc)
- Database: SQLite (development)
- Image Handling: Pillow
- Filtering: django-filter
- Payment Gateway: SSLCommerz
- Dependencies: See requirements.txt
- 🔍 Swagger UI – https://vaxplus-backend.vercel.app/swagger/
- 📘 ReDoc UI – https://vaxplus-backend.vercel.app/redoc/
- Clone the repository
git clone https://github.com/anis191/vaxplus-backend.git cd vaxplus-backend - Create & activate virtual environment
python -m venv .example_env # For Windows source .example_env/Scripts/activate # For macOS/Linux source .example_env/bin/activate
- Install dependencies
pip install -r requirements.txt
- Run migrations
python manage.py migrate
- Start development server
python manage.py runserver
- API Access: http://127.0.0.1:8000/ (Localhost only)
This API uses JWT (JSON Web Tokens) for secure, stateless user authentication.
Base URL: http://127.0.0.1:8000/api/v1 (Localhost)
| Method | Endpoint | Description |
|---|---|---|
| POST | /auth/jwt/create/ |
Login – Obtain access & refresh tokens |
| POST | /auth/jwt/refresh/ |
Refresh access token |
| POST | /auth/users/ |
Register a new user (Sign up) ✅ |
💡 Note: After registration, use the
/auth/jwt/create/endpoint to log in and receive your JWT tokens.
Payments are required only for premium vaccination campaigns.
- User selects a premium vaccination campaign.
- At checkout, the system redirects to the SSLCommerz hosted payment page.
- Upon successful payment, SSLCommerz notifies the system via IPN (Instant Payment Notification).
- The campaign booking is confirmed and marked as Paid.
vaxplus-backend/
├── vaxplus/ – Django settings & core configs
│ ├── __init__.py
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
│
├── api/ – Manage all core APIs
│ ├── views.py
│ ├── urls.py – All API endpoints
│ └── models.py
│
├── bookings/ – Slot booking logic
│ └── (models, views, serializers)
│
├── campaigns/ – Manage all campaigns related logic
│ └── (models, views, serializers)
│
├── fixtures/ – Demo/sample data for the project
│ └── campaigns_data.json (project demo data)
│
├── media/ – Uploaded images or files
│
├── users/ – Custom user logic, registration, user profiles
│ └── (models, views, serializers, urls)
│
├── requirements.txt – Project dependencies
├── manage.py – Django management script
└── README.md – Project documentation
Contributions help make this project better and are always welcome!
- ⭐ Star the repo
- 🍴 Fork the project
- 📥 Clone your fork
- 💡 Create a feature branch:
git checkout -b feature/awesome-feature - ✅ Commit your changes:
git commit -m 'Add some feature' - 📤 Push your branch:
git push origin feature/awesome-feature - 🛠️ Open a Pull Request
Ensure your code follows the project standards and passes all tests.
Anisul Alam
Full-Stack Developer | Django | React | PostgreSQL