Skip to content

Lab Equipment Issue & Return Tracker for a Polytechnic (React + Spring Boot + MySQL)

  • 12 slides
  • 15 viva questions
  • 6 modules
  • Code included

@lab-equipment-issue-return-trackerUpdated Oct 2026

Oscilloscopes, multimeters and kits issued against batches, with due dates, fines and low-stock alerts

Diploma (Polytechnic), Computer Science & Engineering · Sem 6 · Beginner · 16 weeks · Team of 3

More info
Level
Beginner · 16 weeks · Team of 3
Relevant for
Karnataka
Common at
DTE Karnataka, MSBTE, SBTET AP
Syllabus
DTE Karnataka C-20 · 20CS61P Internship / Project · Semester 6
Tech stack
  • React
  • JavaScript
  • Spring Boot
  • Java 17
  • Spring Data JPA
  • MySQL 8
  • Maven
  • JUnit 5
  • Postman
For educational purposes only

Unlock this project

Full PPT + speaker notes, source code and setup steps, READMEFIRST, instructions and all 15 viva answers.

One-time. No subscription, no auto-renew, no drama.

Project packs

Credits never expire and work on any project. Use one here, save the rest for your friend who “will pay you back”.

  1. Pinned

    1 min

    Overview

    Lab Equipment Issue & Return Tracker (LEIRT) is a full-stack web application for the laboratories of a Government or aided polytechnic. In most polytechnic labs, oscilloscopes, digital multimeters, function generators, breadboard trainer kits, soldering stations and hand tools are issued to student batches against a paper register. At the end of the week nobody can say with confidence which batch still holds the second DSO, which multimeter came back with a broken probe, or why the lab has only three working trainer kits left before the practical exam.

    LEIRT replaces the register with a simple, role-based system. The lab-in-charge approves issue requests and records returns, the lab assistant maintains the equipment master and stock, and students (one batch leader per batch) raise requests from their phone. Every issue has a due date; overdue items are highlighted, damage and fines are logged against the batch, and the dashboard warns when working stock of any item drops below a set threshold.

    The project is built on the 20CS52I Full-Stack pathway stack: a React single-page front end, a Spring Boot REST API with Spring Data JPA, and a MySQL database, built with Maven, unit-tested with JUnit 5 and API-tested with Postman. It is designed for a three-member team doing the 16-week 20CS61P Internship / Project under the DTE Karnataka C-20 curriculum, with each member owning a clear layer of the system so that individual accountability is easy to show during reviews.

    Syllabus alignment

    DTE Karnataka · C-20

    20CS61P · Internship / Project · Semester 6 · 16 credits · CIE 240 + SEE 160

    Subjects this project applies
    • 20CS52I Full Stack specialisation pathway — React front end
    • 20CS52I Full Stack specialisation pathway — Spring Boot REST APIs with MySQL
    • 20CS52I Full Stack specialisation pathway — Maven builds, JUnit tests and Postman API testing
    • Java (Full-Stack pathway language)
    How it is evaluated

    Team: 2–3 with individual accountability; cohort ≤ 20

    Also fits: MSBTE K-scheme (I-scheme legacy), SBTET AP C-23.

    1 min read · 15 viva questions

  2. 2 min

    Synopsis

    Abstract

    Polytechnic laboratories hold equipment worth several lakh rupees, yet issue and return are usually tracked in a handwritten register. This makes it hard to find who holds an item, to enforce return dates, to recover the cost of damage and to plan purchases before exams. This project develops the Lab Equipment Issue & Return Tracker, a web application with a React front end, a Spring Boot REST API and a MySQL database. It supports equipment and stock management, batch-wise issue requests with lab-in-charge approval, due-date tracking, returns with condition checks, a damage and fine log, and low-stock alerts. The system is tested with JUnit unit tests, Postman collections and manual test cases.

    Introduction

    Under the C-20 curriculum, students of the Computer Science and Engineering diploma spend the sixth semester on a 16-week internship or project. Our team studied the Electronics and Digital labs of a polytechnic, where one lab assistant manages around 150 items for more than 20 batches a week. We observed double issues, missing probes and fine amounts decided from memory.

    Existing system

    • A bound issue register with columns for date, batch, item and signature; no running stock count.
    • Damage is noted in the margin; fines are collected in cash with no linked record.
    • The lab-in-charge learns about low stock only when a batch cannot be served.
    • Reports for the Head of Section are prepared by counting pages at the end of the semester.

    Proposed system

    • A central equipment master with asset tag, category, lab, total quantity and working quantity.
    • Issue requests raised by batch leaders and approved or rejected by the lab-in-charge.
    • Automatic due dates, an overdue list and a batch-wise history.
    • Return entry with condition (good, minor damage, major damage, lost) that updates stock and opens a fine record.
    • Low-stock alerts when working quantity falls below the reorder level set for the item.
    • Reports exportable as CSV for audits and the stock-verification register.

    Feasibility

    • Technical: React, Spring Boot and MySQL are taught in the 20CS52I pathway and run on the lab's existing Windows PCs.
    • Economic: all tools are free and open source; no hardware is purchased.
    • Operational: screens mirror the register columns the lab staff already know, so training takes under an hour.
    • Schedule: the 16-week slot comfortably fits requirement study, three development increments, testing and documentation.
  3. 1 min

    Problem statement

    The Electronics and Digital laboratories of a typical polytechnic issue oscilloscopes, digital multimeters, trainer kits and tools to student batches every day, but the only record is a paper register. There is no running stock count, so staff cannot tell at a glance which items are out, which batch holds them or when they are due back. Items are returned late or with missing accessories, and damage is either ignored or fined inconsistently because there is no linked history. The lab-in-charge discovers shortages only when a batch cannot be served during a practical session, and semester-end stock verification takes days of manual counting.

    The problem is to design and build a simple, reliable web application that records every issue and return against a batch, enforces approval and due dates, keeps an accurate working-stock count, logs damage and fines with evidence, and alerts staff before stock runs low, while remaining easy enough for lab assistants to use daily.

  4. 1 min

    Objectives & scope

    1. 01Design a normalised MySQL schema for labs, equipment, batches, students, issue requests, issue items, returns, damage records and fines.
    2. 02Build a Spring Boot REST API with layered controller, service and repository classes and consistent JSON error responses.
    3. 03Implement role-based access for Lab-in-charge, Lab Assistant and Batch Leader with hashed passwords and token-based sessions.
    4. 04Enforce an approval workflow and due dates for every issue, with an automatically computed overdue list.
    5. 05Record returns with item condition, update working stock and create damage and fine entries in the same transaction.
    6. 06Raise low-stock alerts when the working quantity of an item falls below its reorder level.
    7. 07Provide a responsive React interface usable on lab PCs and students' phones, plus CSV reports for stock verification.
    8. 08Verify the system with JUnit unit tests, a Postman collection covering every endpoint and a manual test-case table.

    Scope

    In scope

    • One polytechnic with several labs (Electronics, Digital, Hardware and Networking, Programming).
    • Three roles: Lab-in-charge (approver and administrator), Lab Assistant (stock and returns) and Batch Leader (requests on behalf of a batch).
    • Equipment master with asset tag, category, quantity, working quantity and reorder level.
    • Issue request, approval or rejection, issue, return with condition, damage record and fine.
    • Overdue list, low-stock alerts on the dashboard and CSV reports.

    Out of scope (v1)

    • Online fine payment; fines are marked paid when the receipt number from the college office is entered.
    • Barcode or RFID scanning (listed under future scope).
    • Purchase orders and vendor management.
    • Integration with the college ERP or attendance system.
  5. 1 min

    Methodology

    We follow an Incremental SDLC model. The system is built in three working increments, each reviewed by the internal guide, which fits the C-20 practice of continuous internal evaluation during the 16-week slot.

    PhaseWeeksActivitiesOwner(s)Deliverable
    Orientation and requirement study1–2Observe the Electronics and Digital labs, study the issue register, interview the lab assistant and lab-in-chargeAllRequirement document, weekly diary
    Design3–4ER diagram, DFD level 0 and 1, REST endpoint list, React wireframesMember C (DB), Member B (API), Member A (UI)Design document
    Increment 15–7Login and roles, labs, equipment master, batchesA, B, CWorking master-data screens
    Increment 28–10Issue request, approval, issue, return with condition, stock updateA, B, CIssue/return workflow
    Increment 311–12Damage and fine log, overdue list, low-stock alerts, CSV reportsA, B, CComplete application
    Testing13–14JUnit unit tests, Postman collection, manual test cases, user trial with lab staffMember C leads, all testTest report
    Documentation and presentation15–16Report, PPT, demo rehearsal, weekly diary sign-offAllFinal submission

    Working practice: each member keeps a weekly diary of tasks done, code files touched and problems solved. We use a shared Git repository with one branch per member and merge only after the guide's weekly review. This gives clear evidence of individual accountability, which the C-20 scheme expects when projects are done in teams of two or three.

  6. 2 min

    Architecture & tech stack

    • React
    • JavaScript
    • Spring Boot
    • Java 17
    • Spring Data JPA
    • MySQL 8
    • Maven
    • JUnit 5
    • Postman

    LEIRT uses a three-tier client–server architecture:

    1. Presentation tier (React): a single-page application built with React and React Router. Pages call the API with fetch, store the login token in memory, and show different menus for each role.
    2. Application tier (Spring Boot): REST controllers receive JSON, service classes apply business rules (approval, stock check, due-date calculation, fine calculation) inside @Transactional methods, and Spring Data JPA repositories talk to the database. Spring Security checks the role on every endpoint.
    3. Data tier (MySQL 8): normalised tables with foreign keys and a unique asset tag per equipment item.
    flowchart TD
      U["Users (Lab-in-charge, Assistant, Batch Leader)"] --> R["React SPA (browser)"]
      R -->|"JSON over HTTP"| C["Spring Boot REST controllers"]
      C --> S["Service layer: approval, stock, fines"]
      S --> J["Spring Data JPA repositories"]
      J --> D[("MySQL 8 database")]
      S --> A["Low-stock and overdue checker (scheduled)"]
      A --> D
    erDiagram
      LAB ||--o{ EQUIPMENT : holds
      BATCH ||--o{ STUDENT : has
      BATCH ||--o{ ISSUE_REQUEST : raises
      ISSUE_REQUEST ||--|{ ISSUE_ITEM : contains
      EQUIPMENT ||--o{ ISSUE_ITEM : "issued as"
      ISSUE_ITEM ||--o| RETURN_RECORD : "closed by"
      RETURN_RECORD ||--o| FINE : "may create"
      LAB {
        int id PK
        string name
      }
      EQUIPMENT {
        int id PK
        string assetTag
        string name
        int totalQty
        int workingQty
        int reorderLevel
        int labId FK
      }
      BATCH {
        int id PK
        string code
        int semester
      }
      STUDENT {
        int id PK
        string regNo
        string name
        int batchId FK
      }
      ISSUE_REQUEST {
        int id PK
        int batchId FK
        string status
        date dueDate
      }
      ISSUE_ITEM {
        int id PK
        int requestId FK
        int equipmentId FK
        int qty
      }
      RETURN_RECORD {
        int id PK
        int issueItemId FK
        string conditionCode
        date returnedOn
      }
      FINE {
        int id PK
        int returnId FK
        decimal amount
        string status
      }

    Key design decisions

    • Working quantity is stored, not recalculated, and is changed only inside the issue and return service methods, which run in a single transaction with a row lock, so two approvals cannot issue the same last multimeter.
    • REST endpoints follow resource naming, for example POST /api/requests, PATCH /api/requests/{id}/approve, POST /api/returns, GET /api/reports/overdue.
    • Validation uses Bean Validation annotations (@NotNull, @Min) on request DTOs; errors return a consistent JSON body handled by a @RestControllerAdvice class.
    • A scheduled job (@Scheduled, every morning) marks overdue requests and records low-stock alerts for the dashboard.
  7. 6 modules

    Modules

    • Authentication and Roles (Member B)

      Login with BCrypt-hashed passwords and a signed token returned to the React app. Spring Security restricts endpoints by role: only the Lab-in-charge can approve requests or waive fines, only lab staff can record returns, and Batch Leaders see only their own batch's requests.

    • Equipment and Stock Master (Member C)

      CRUD screens and APIs for labs, equipment categories and items with asset tag, total quantity, working quantity and reorder level. Items can be marked under repair, which removes them from working stock without deleting history. Member C also owns the MySQL schema and seed data.

    • Issue Request and Approval (Member B)

      Batch Leaders select items and quantities for a practical session; the service checks working stock and creates a PENDING request. The Lab-in-charge approves or rejects with a remark. Approval reduces working stock inside a transaction and sets the due date, by default the end of the same lab day or seven days for project kits.

    • Return, Damage and Fine Log (Member B and Member C)

      Lab staff record each returned item with a condition code. GOOD restores stock; MINOR or MAJOR damage and LOST create a damage record and a fine based on a configurable percentage of item cost. Fines are marked paid with the college office receipt number, or waived by the Lab-in-charge with a reason.

    • React Front End and Dashboards (Member A)

      Role-specific dashboards built in React: pending approvals and low-stock alerts for the Lab-in-charge, today's issues and due returns for the assistant, and request status for Batch Leaders. Forms show validation errors returned by the API and work on mobile screens.

    • Reports, Alerts and Testing (Member C)

      Overdue list, batch-wise issue history, damage and fine summary and stock-verification report, each exportable as CSV. Member C also maintains the JUnit test classes, the Postman collection and the manual test-case table used in the final report.

  8. Locked

    Presentation

    12 slides with speaker notes. The outline below is free; the bullets, notes and the generated .pptx unlock with the project.

    1. Lab Equipment Issue & Return Tracker
    2. The problem in our lab
    3. Objectives
    4. Existing vs proposed system
    5. Technology stack
    6. System architecture
    7. Database design
    8. Modules and ownership
    9. Issue and return workflow
    10. Testing
    11. Results and screenshots
    12. Conclusion and future scope

    Bullets, speaker notes and the .pptx download unlock with the project.

    Presentation is locked: 12 slides, Speaker notes, .pptx download.

  9. 1 min

    Future scope

    • QR code or barcode labels on each asset so issue and return are done by scanning with a phone camera.
    • SMS or email reminders to batch leaders one day before the due date.
    • Repair and calibration tracker with vendor details and service history for oscilloscopes and power supplies.
    • Purchase planning report that uses six months of issue data to suggest how many kits to buy before the next academic year.
    • Multi-institution deployment so a cluster of polytechnics can share rarely used equipment.
  10. 9 sources

    References

    1. Spring Boot Reference Documentation
    2. Spring Data JPA Reference Documentation
    3. React Documentation
    4. MySQL 8.0 Reference Manual
    5. JUnit 5 User Guide
    6. Apache Maven Documentation
    7. OWASP Top 10 Web Application Security Risks
    8. Craig Walls, Spring in Action, 6th ed., Manning Publications
    9. Roger S. Pressman and Bruce R. Maxim, Software Engineering: A Practitioner's Approach, 9th ed., McGraw-Hill

    Cite this bundle

    OnlyProjects. (2026). Lab Equipment Issue & Return Tracker for a Polytechnic (React + Spring Boot + MySQL): Diploma (Polytechnic) Computer Science & Engineering project bundle [Educational resource]. https://onlyprojects.online/projects/diploma-cse-lab-equipment-issue-return-tracker

Slides, diagrams & files

12 slides. Titles are free; bullets, speaker notes and the .pptx unlock with the project.

  1. SLIDE 1

    Lab Equipment Issue & Return Tracker

  2. SLIDE 2

    The problem in our lab

  3. SLIDE 3

    Objectives

  4. SLIDE 4

    Existing vs proposed system

  5. SLIDE 5

    Technology stack

  6. SLIDE 6

    System architecture

  7. SLIDE 7

    Database design

  8. SLIDE 8

    Modules and ownership

  9. SLIDE 9

    Issue and return workflow

  10. SLIDE 10

    Testing

  11. SLIDE 11

    Results and screenshots

  12. SLIDE 12

    Conclusion and future scope

Architecture diagrams · 2

1
flowchart TD
  U["Users (Lab-in-charge, Assistant, Batch Leader)"] --> R["React SPA (browser)"]
  R -->|"JSON over HTTP"| C["Spring Boot REST controllers"]
  C --> S["Service layer: approval, stock, fines"]
  S --> J["Spring Data JPA repositories"]
  J --> D[("MySQL 8 database")]
  S --> A["Low-stock and overdue checker (scheduled)"]
  A --> D
2
erDiagram
  LAB ||--o{ EQUIPMENT : holds
  BATCH ||--o{ STUDENT : has
  BATCH ||--o{ ISSUE_REQUEST : raises
  ISSUE_REQUEST ||--|{ ISSUE_ITEM : contains
  EQUIPMENT ||--o{ ISSUE_ITEM : "issued as"
  ISSUE_ITEM ||--o| RETURN_RECORD : "closed by"
  RETURN_RECORD ||--o| FINE : "may create"
  LAB {
    int id PK
    string name
  }
  EQUIPMENT {
    int id PK
    string assetTag
    string name
    int totalQty
    int workingQty
    int reorderLevel
    int labId FK
  }
  BATCH {
    int id PK
    string code
    int semester
  }
  STUDENT {
    int id PK
    string regNo
    string name
    int batchId FK
  }
  ISSUE_REQUEST {
    int id PK
    int batchId FK
    string status
    date dueDate
  }
  ISSUE_ITEM {
    int id PK
    int requestId FK
    int equipmentId FK
    int qty
  }
  RETURN_RECORD {
    int id PK
    int issueItemId FK
    string conditionCode
    date returnedOn
  }
  FINE {
    int id PK
    int returnId FK
    decimal amount
    string status
  }

Files

Viva questions & answers

3 of 15 questions free. Explain each answer in your own words before you move on.

  1. Concept

    What is a REST API and why did you separate the React front end from the Spring Boot back end?

    A REST API exposes resources such as requests and equipment through HTTP methods like GET, POST and PATCH with JSON bodies. Separating the React front end means business rules like stock checks live only in Spring Boot, and the same API could later serve a mobile app.

  2. Concept

    What is the difference between the controller, service and repository layers in your API?

    The controller receives HTTP requests and returns responses, the service holds business rules such as approval and fine calculation inside transactions, and the repository is a Spring Data JPA interface that reads and writes MySQL tables. Keeping them separate makes each layer easy to test.

  3. Concept

    Why did you choose MySQL, a relational database, for this project?

    Our data is strongly related: equipment belongs to labs, requests belong to batches, and returns and fines point to issue items. MySQL gives foreign keys, transactions and joins, which we need to keep working stock correct when two approvals happen at the same time.

+12 more questions

They and the answers unlock with the project. Try answering the ones above yourself first. Your examiner will.

For educational purposes only. Use this bundle to understand how the project works, then build and write your own. Submitting it verbatim is between you, your conscience and your external examiner.