Skip to content

Placement records for Sri JCBM College

Student Tracking System

The college keeps track of what its graduates go on to do: placement, higher studies, starting a business, or still looking. This application replaces scattered spreadsheets and folders with one searchable record per student, including their photos and documents.

At a glance

  • One searchable record per graduate, replacing scattered spreadsheets and folders.
  • I built the student forms, document handling, Excel bulk-import screen and reports.
  • Delivered as a Windows installer, with backup and restore built in.
Who it's for
College staff who keep placement records
Role
Co-developer: student forms, documents, bulk import interface, reports and installer builds
Team
Team of 2
When
April 2026 – July 2026
Status
Status: Completed

Packaged as a Windows installer.

Built with
  • Python
  • CustomTkinter
  • SQLite
  • openpyxl
  • ReportLab
  • PyMuPDF
  • PyInstaller
  • Inno Setup
The Student Tracking System dashboard: a dark sidebar menu, cards counting 36 students by outcome (18 placed, 9 in higher studies, 3 entrepreneurs, 6 not placed), a coloured placement breakdown bar, quick actions for adding, bulk importing and managing students, and a table of recently added students.
The dashboard, with counts by outcome and a placement breakdown. Captured from the real application; every student shown is fictional.

Context and problem

Student details, placement outcomes and documents such as resumes and ID cards were kept in different places. Producing a report on one student, or importing a whole batch, meant manual copying.

Objectives

  • One record per student with academic, personal and outcome details.
  • Store each student's photos and documents in a predictable folder structure.
  • Import a whole batch from Excel, with errors shown before anything is saved.
  • Print forms and per-student reports.

My role

Co-developer: student forms, documents, bulk import interface, reports and installer builds

  • Built and refined the add, update and view student screens and their form helpers.
  • Worked on document handling and the student report.
  • Redesigned the bulk import interface and its column handling.
  • Built installer releases.

Approach

On first launch, a setup wizard asks where to keep data. The database, logs, backups, reports and student files all live under that one folder, arranged by batch, course and registration number, so the data can be moved or backed up as a unit.

Bulk import works in three steps: download a template with instructions, upload the filled sheet, then review a colour-coded preview where invalid rows can be edited inline before only the valid rows are imported.

Architecture

Interface
CustomTkinter desktop UI with light and dark themes.
Data
SQLite, with a file repository for photos and PDFs.
Documents
ReportLab for PDF reports; PyMuPDF and pdf2image for previews.
Import
openpyxl reads the Excel template; validation runs per row with duplicate detection.

Challenges and decisions

  1. Soft delete for student data

    Deleting a student moves their folder to a recycle bin inside the data directory, so an accidental delete doesn't lose documents.

  2. Outcome-specific fields

    The fields shown depend on the outcome: company and job role for placed students, programme and institution for higher studies, startup details for entrepreneurs.

The Student Records screen: a search box, filters for scheme, course, current status and year of passing, buttons to filter by date added and to sort, and a table of students with their UUCMS registration number, gender, scheme, course, year of passing, status and phone, with view, edit, documents and delete actions.
Student records, with search, filters and sorting.
A student's record: basic information, contact details, academic details and current status, here placed at Wipro as a Project Engineer, with buttons to edit the record or print a report.
One graduate's record. The fields under Current Status change with the outcome: company and role for placed students, programme and university for higher studies.

Outcome and status

Implemented: dashboard with placement statistics, add, view, search and update, documents, per-student PDF reports, Excel bulk import with preview, backup and restore, printable forms, and a Windows installer.

Built for internal use, so there is no public demo or repository.

Lessons

What I learned

Working in a two-person repository taught me to keep commits focused and to agree on file ownership before larger UI changes.

Got something that needs building?

Tell me what's slowing your team down. I'll tell you honestly what it would take, and whether I'm the right person for it.

adithyamdgowda@gmail.com

Hiring a developer? I'm also open to full-time roles. View my resume.