💡 Inspiration The inspiration for this project came from the inefficiency and frustration inherent in the traditional paper-based university clearance process. Students and administrators often faced delays, misplaced forms, and a lack of transparency regarding approval status. We aimed to create a solution that provides real-time status updates, automates internal checks (like CGPA and dues verification), and clearly delegates responsibilities across different administrative offices.
🚀 What it does The University Digital Clearance System provides three distinct, role-based dashboards to manage the final stages of a student's graduation clearance:
Accounts Office Dashboard: Manages Financial Clearance. It displays the student's outstanding dues (e.g., Library Fines) and enables the Accounts Officer to recalculate dues and officially grant clearance once the balance is zero.
Dean/Academic Office Dashboard: Handles Academic Clearance. It lists pending requests, highlights status indicators (e.g., CGPA cgpa-ok or cgpa-warning), and allows the Dean to approve or view a full academic audit.
HOD Dashboard: Focuses on Departmental Oversight, including verifying supervisor assignments and approving bulk final year project (FYP) course enrollments for ready students.
The core functionality is to update a single Clearance_Status record in the database, ensuring all offices see a unified, accurate status in real-time.
🛠️ How we built it The project was built using a robust Full-Stack architecture split between a modern frontend and a powerful backend:
Frontend (UI): Built using HTML5, CSS3 (with dedicated design files like deshome.css, deandesign.css), and Vanilla JavaScript (files like accountofficejava.js, deanjava.js).
Backend (API & Data): Developed using Django and the Django REST Framework (DRF). This layer manages the core business logic, such as checking if total_dues is zero before granting financial clearance, and handling all data persistence.
Database: A relational database (e.g., PostgreSQL or MySQL, represented by our Django Models: Student and ClearanceStatus) was used to store student records and the dynamic, multi-stage clearance status.
Integration: All UI actions (e.g., clicking "Approve") were converted from local simulations to asynchronous fetch() requests that communicate with the defined RESTful API endpoints (e.g., /api/dean/approve-academic-clearance/{id}).
🚧 Challenges we ran into The primary challenge was migrating from client-side simulation to a robust API integration.
Replacing Simulation: The initial frontend JavaScript files used local alert() commands and direct DOM manipulation to simulate success. We had to systematically replace every simulated state change with an asynchronous fetch() call, handling success and failure states correctly on the client side.
API Contract Design: Defining a consistent and secure set of API endpoints (e.g., ensuring only POST requests could alter status and not GET requests) was crucial for data integrity.
Data Modeling: Designing the ClearanceStatus model to efficiently track status across all departments (Academic, Financial, HOD) required careful consideration to avoid redundant data.
🎉 Accomplishments that we're proud of Successful API Linking: We achieved a fully integrated system where every action on the frontend is processed securely by the Django backend, completing the full-stack loop.
Clear Visual Status: The use of distinct CSS classes (.load-low, .load-high, .cgpa-warning) provides immediate, unambiguous status feedback to administrators, significantly reducing the chance of manual error.
Role-Based Design: The system successfully compartmentalizes access and responsibility, ensuring that only the Accounts Office can manage financial dues and only the Dean's Office can grant final academic approval.
🧠 What we learned We gained valuable experience in Full-Stack Development best practices:
API-First Design: We learned the importance of defining the API endpoints and expected JSON payloads before writing client-side integration logic.
Asynchronous Programming: We deeply utilized JavaScript Promises and the fetch API to handle the delay and potential failure of server communications gracefully.
One-to-One Relationships (Database): We reinforced the concept of using a one-to-one relationship (ClearanceStatus to Student) to ensure that a student only ever has one active clearance record, preventing data inconsistencies.
⏭️ What's next for University The next steps for the project include expanding functionality and moving toward external integration:
Student Portal Development: Create a public-facing HTML page where students can log in and view their current clearance status in real-time (e.g., "Financial: Cleared," "Academic: Pending").
Email Notifications: Integrate a notification service to automatically email students and administrators upon status changes (e.g., "Your Academic Clearance has been granted").
External System Integration: Connect the Django backend to the University's existing ERP/SIS system to automatically fetch initial CGPA/Credit data and push the final "Graduated" status upon full clearance.
Security and Authentication: Implement token-based authentication (beyond the simple sessionStorage mock) and role-based access controls to secure the admin endpoints.