A structured learning repository designed to document and practice Django concepts as part of the ALX Software Engineering journey. This repo serves as a hands-on lab for exploring Django fundamentals, building projects, and experimenting with different features of the framework.
- About
- Projects & Structure
- Features Explored
- Getting Started
- Requirements
- How to Run the Projects
- Contributing
- License
This repository is part of the ALX-Africa software engineering track and is meant for:
- Practicing core Django concepts
- Experimenting with Django apps, models, views, templates, APIs, security features
- Building mini-projects to reinforce learning
Here’s an overview of the folders/projects inside this repo:
| Project / Folder | Purpose |
|---|---|
django_blog |
A blog application to practise models, views, templates, CRUD operations |
api_project |
Working with Django REST / building APIs |
social_media_api |
More advanced API features, perhaps authentication, permissions etc. |
library_management_system (or LibraryProject) |
Building a system to manage books, users etc. |
advanced-api-project |
Exploring more advanced API patterns, perhaps custom permissions, throttling etc. |
advanced_features_and_security |
Focus on Django’s security features, permission systems, advanced settings etc. |
django_models |
Hands-on practice with models: relationships, migrations etc. |
While the exact content evolves, some of the key Django features you’ll likely see/use here include:
- Models, migrations & relationships
- Views (class-based & function-based)
- Templates and static assets
- URL routing
- Forms and validation
- Django admin customization
- REST APIs (serializers, viewsets)
- Authentication & permissions
- Security best practices (e.g. CSRF, input validation, safe settings)
These instructions will get you a copy of the project up and running locally for learning and experimentation.
You will need:
- Python (3.8+ recommended)
- pip (Python package manager)
- Virtual environment tool (e.g.
venvorvirtualenv) - Familiarity with Django basics helps
Here’s a general workflow to run any of the projects in this repo:
-
Clone this repository
git clone https://github.com/Aalphakeem-Adroit/Alx_DjangoLearnLab.git cd Alx_DjangoLearnLab -
Choose a project folder (e.g.
django_blog,api_project, etc.) -
Set up a virtual environment
python3 -m venv venv source venv/bin/activate # On Unix/MacOS # or venv\Scripts\activate # On Windows
-
Install dependencies Typically there will be a
requirements.txtin each project or at root.pip install -r requirements.txt
-
Apply migrations
python manage.py migrate
-
Run the development server
python manage.py runserver
-
Explore
- Navigate to
localhost:8000(or whichever port) in your browser - Use API endpoints (if present)
- Check out admin (if enabled), templates, etc.
- Navigate to
Contributions are welcome! If you find errors, have project suggestions, or want to add features:
- Fork the repository
- Create a new branch (e.g.
feature/xyzorfix/bug-abc) - Make your changes
- Commit and push
- Open a Pull Request
Please try to follow consistent style and include clear commit messages. If adding new projects, try to match the existing structure (README, requirements, usage instructions etc.).
This project is licensed under the MIT License. You are free to use, modify, distribute, etc., under the terms of the license. (GitHub)
- ALX-Africa — for the curriculum inspiration
- Django documentation — for being a great guide
- Any libraries, tutorials or guides used along the way
Happy Learning & Building! 🚀