This repository contains a step-by-step training assignment for building a Library Management System. The project demonstrates SQL relationships, data ingestion, and Django REST API development following Python best practices.
Before starting this assignment, ensure you have the following tools installed:
-
Git - Version control system for tracking changes
-
uv - Python package installer and environment manager
-
Ruff - Fast Python linter and code formatter
-
Swagger/OpenAPI - API documentation and specification
-
Postman - API testing tool
Note: These topics will be covered in detail in the orientation handbook. The links provided are just starting points to familiarize yourself with these tools.
Regular git commits are essential for:
- Tracking your progress
- Creating a history of your work
- Making it easier to revert changes if needed
- Demonstrating your understanding of version control
Commit Guidelines:
- Make small, focused commits
- Write clear commit messages
- Commit after completing a logical unit of work
- Push your changes regularly
library-management-system/
├── README.md # Project overview and setup instructions
├── phase1-sql/ # SQL Database Design
│ └── README.md # Phase 1 instructions
├── phase2-data-ingestion/ # Python ETL
│ └── README.md # Phase 2 instructions
├── phase3-django-api/ # Django REST API
│ └── README.md # Phase 3 instructions
├── mentor/ # Resources for mentors
│ └── progress_tracking.md # Progress tracking guidelines
└── api-spec/ # API specifications
└── swagger.yaml # Swagger/OpenAPI specification
Design and implement the database schema for the Library Management System. Go to Phase 1 Instructions
Develop Python scripts to ingest and transform data for the Library Management System. Go to Phase 2 Instructions
Build a RESTful API using Django and Django REST Framework. Go to Phase 3 Instructions
- Code quality and organization
- Adherence to requirements
- Documentation quality
- Regular git commits showing progress
- Successful implementation of each phase