This repository contains the backend API for Team A of the Developer Foundry 2.0 Bootcamp. The project is built with Django & Django REST Framework (DRF) and provides APIs for:
- User authentication and signup
- Email verification
- Team management (CRUD operations)
- Role-based authorization
- User sign in
Our goal is to build a secure and scalable foundation for managing users, teams, and permissions.
- Authentication – Secure user login and token management
- User Signup – Register new users with validation
- Email Verification – Ensure user accounts are valid
- Team Management (CRUD) – Create, Read, Update, and Delete teams
- Role Management (Authorization) – Assign and enforce user roles
- Sign In – Seamless access with credential verification
- Backend Framework: Django 5.x
- API Layer: Django REST Framework
- Database: PostgreSQL (recommended) / SQLite (development)
- Authentication: JWT / Token-based (via DRF)
- Environment Management:
python-dotenv - Package Management:
pip-tools
- Chima Enyeribe – Backend Developer (Python)
- Oluwatobiloba Okunogbe – Backend Developer (Python)
- Richard McAdams – Backend Developer (Python)
git clone [email protected]:Developer-s-Foundry/DF.2.0-task-mgt-authentication.git
cd DF.2.0-task-mgt-authenticationpython -m venv venvsource venv/bin/activate # On Mac/Linux
venv\Scripts\activate # On Windows
(optionally): source venv/Scripts/activate # On Windows
pip install -r requirements.txtCreate a .env file in the project root:
SECRET_KEY=your_django_secret_key
DEBUG=True
DATABASE_URL=postgres://user:password@localhost:5432/dbname
EMAIL_HOST=smtp.example.com
EMAIL_PORT=587
EMAIL_HOST_USER=your_email
EMAIL_HOST_PASSWORD=your_passwordpython manage.py migratepython manage.py createsuperuserpython manage.py runserverAPI will be available at:
👉 http://127.0.0.1:8000/api/
| Endpoint | Method | Description |
|---|---|---|
/api/auth/signup/ |
POST | User signup |
/api/auth/login/ |
POST | User login / token |
/api/auth/verify-email/ |
GET | Email verification |
/api/teams/ |
GET | List all teams |
/api/teams/ |
POST | Create team |
/api/teams/{id}/ |
PUT | Update team |
/api/teams/{id}/ |
DELETE | Delete team |
/api/roles/ |
GET | Manage roles/authorization |
- Fork the repository
- Create your feature branch (
git checkout -b feature/new-feature) - Commit your changes (
git commit -m 'Add new feature') - Push to the branch (
git push origin feature/new-feature) - Create a Pull Request