Skip to content

The project demonstrates SQL relationships, data ingestion, and Django REST API development following Python best practices.

Notifications You must be signed in to change notification settings

aaarif796/Library-Management-System

Repository files navigation

Library Management System - Training Assignment

Overview

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.

Prerequisites

Before starting this assignment, ensure you have the following tools installed:

  1. Git - Version control system for tracking changes

  2. uv - Python package installer and environment manager

  3. Ruff - Fast Python linter and code formatter

  4. Swagger/OpenAPI - API documentation and specification

  5. 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.

Git Best Practices

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

Repository Structure

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

Assignment Phases

Phase 1: Database Design & SQL Implementation

Design and implement the database schema for the Library Management System. Go to Phase 1 Instructions

Phase 2: Data Ingestion (Python ETL)

Develop Python scripts to ingest and transform data for the Library Management System. Go to Phase 2 Instructions

Phase 3: Django REST API Development

Build a RESTful API using Django and Django REST Framework. Go to Phase 3 Instructions

Evaluation Criteria

  • Code quality and organization
  • Adherence to requirements
  • Documentation quality
  • Regular git commits showing progress
  • Successful implementation of each phase

About

The project demonstrates SQL relationships, data ingestion, and Django REST API development following Python best practices.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages