Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 

Repository files navigation

iMusic Institute Management System

A command-line Python application for managing a music institute's records — learners, staff, and instructional resources — backed by a MySQL database.

Features

  • First-run setup: automatically creates the iMusic database, required tables, and sample seed data.
  • Learners: add, view (by ID, name, genre, area, or all), update, and delete learner records.
  • Staff: add, view (by ID, name, designation, salary, or join date), update, and delete staff records.
  • Resources Issued: issue a resource to a learner, view all issued resources, and process returns.
  • Resources Available: add new resources, adjust available quantity (increase/reduce), and view current stock.
  • Table Schema Viewer: inspect the structure of any table in the database.

Database Schema

The app manages four tables inside a MySQL database named iMusic:

Table Description
Learners Student records: ID, name, genre, phone, area
Staff Staff records: ID, name, designation, date of join, salary
ResourcesIssued Tracks which learner has which resource, and when it was issued
ResourcesAvailable Master list of resources with available/issued counts

Requirements

  • Python 3
  • MySQL server (running locally)
  • mysql-connector-python package

Install the dependency with:

pip install mysql-connector-python

Usage

  1. Make sure a MySQL server is running and you have valid login credentials.
  2. Run the script:
    python imusic.py
  3. Enter your MySQL username and password when prompted.
  4. On the first run, press 1 to set up the database and load sample data. On subsequent runs, press any other key to skip setup.
  5. Use the on-screen numbered menus to navigate between:
    • Viewing tables and schemas
    • Managing Learners
    • Managing Staff
    • Managing Resources Issued
    • Managing Resources Available

Known Limitations

  • SQL queries are built with string formatting rather than parameterized queries, so untrusted input should not be used with this tool as-is.
  • Some availability checks (e.g. in issue_new() and resources_return()) compare a fetched row list to 0, which will not behave as intended and should be reviewed before production use.
  • add_resource() currently inserts a hardcoded resource rather than using the values entered by the user.
  • No input validation is performed on IDs, dates, or numeric fields.

License

No license specified.

About

A sample project that i made in class 12th using Python as frontend and MySQL as backend.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages