Skip to main content

Document Management application for Postgraduate Scholars

A web application to manage and store academic documents for Postgraduate scholars and faculty

Django React django-rest-framework vite
Document Management application for Postgraduate Scholars main visual

PG Document Hub - Department of Materia Medica, WMHMC

Project Overview

The PG Document Hub is a web application designed to streamline the management, storage, and retrieval of academic documents for Postgraduate (PG) scholars and faculty within the Department of Materia Medica at White Memorial Homoeopathic Medical College (WMHMC). It provides a centralized platform for uploading, organizing (by batch and date), and verifying submissions like discussion presentations, forms, and schedules.

This application is intended for deployment on a local department computer, accessible via the local Wi-Fi network only, ensuring data privacy and control.

Key Goals & Objectives

  • Provide a secure and centralized repository for all PG academic documents.
  • Automate the organization of submitted files by batch, discussion type, and date.
  • Simplify the process of schedule creation and management for faculty.
  • Enable efficient tracking and verification of document submissions.
  • Offer distinct user experiences and permissions based on roles (Student, Batch Leader, Professor, Admin).
  • Ensure the application is user-friendly, responsive, and accessible within the local department network.

Screenshots

PG Document Hub Screenshot 1PG Document Hub Screenshot 2PG Document Hub Screenshot 3PG Document Hub Screenshot 4
PG Document Hub Full Screenshot

Features Implemented

  • Secure User Authentication: Robust login system for PG Scholars (Students, Batch Leaders) and Faculty (Professors, Admins).
  • Role-Based Access Control: Tailored views, permissions, and functionalities based on user roles ensuring data integrity and appropriate access levels.
  • Intuitive File Upload & Management: Seamless document uploading (PDFs, PowerPoints, Word documents, etc.) with clear organization.
  • Automated Folder Organization: Files are automatically sorted into a structured folder system on the server based on academic batch, discussion type, and date of submission, simplifying retrieval and management.
  • Dynamic Schedule Management: Faculty can easily create, update, and manage discussion schedules, which are then visible to relevant scholars.
  • Submission Verification & Tracking: Batch Leaders and Professors can efficiently track whether required files have been submitted for scheduled discussions, with visual indicators for submission status.
  • Centralized & Secure Repository: All academic documents are securely stored on the department's designated local computer.
  • Responsive User Interface: A modern, user-friendly interface built with React and Tailwind CSS, ensuring accessibility and a consistent experience across desktop and mobile devices.
  • Dark/Light Theme Toggle: User preference for interface theme, enhancing visual comfort.
  • PWA Enabled: The application is installable as a Progressive Web App on supported devices, offering an app-like experience with offline capabilities for certain assets.

Technological Approach & Stack

This project leverages a full-stack approach to deliver a robust and maintainable solution.

  • Backend:
    • Python & Django: The core backend framework, providing a solid foundation for database interaction, business logic, and API development.
    • Django REST Framework (DRF): Used to build a comprehensive and secure API for communication between the frontend and backend.
    • Waitress: A production-ready WSGI server chosen for its simplicity and reliability on Windows environments.
    • WhiteNoise: Efficiently serves static files (CSS, JavaScript, images) in production, integrating seamlessly with Django.
    • Database: SQLite is used for ease of setup in a local deployment scenario, with the option to scale to PostgreSQL if needed.
  • Frontend:
    • React (with Vite): A modern JavaScript library for building dynamic and interactive user interfaces, bundled with Vite for a fast development experience.
    • TypeScript: Adds static typing to JavaScript, improving code quality, maintainability, and developer productivity.
    • Tailwind CSS: A utility-first CSS framework used for rapid UI development and creating a consistent, responsive design.
    • Zustand: A small, fast, and scalable state management solution for React.
    • React Router: Handles client-side navigation and routing within the single-page application.
    • Axios: A promise-based HTTP client for making API requests to the Django backend.
    • vite-plugin-pwa: Implements Progressive Web App features, allowing the application to be installable.
  • Deployment (Local Network):
    • The application is designed for deployment on a Windows 11 machine within the department.
    • Windows Task Scheduler is utilized for automating the startup of the server and ensuring it runs reliably as a background process.

Challenges & Solutions

  • Local Deployment & Network Accessibility: Ensuring the application was easily deployable and accessible only within the local department Wi-Fi network required careful configuration of the WSGI server (Waitress) to bind to 0.0.0.0 and firewall rules on the host machine.
  • Automated File Organization: Developing the logic to automatically create a structured directory path on the server based on submission metadata (batch, type, date) and then saving uploaded files to these specific locations was a key backend challenge. This was solved using Django's file handling capabilities and Python's os module.
  • Role-Based Permissions: Implementing a granular role-based access control system that correctly restricts views and actions for different user types (Students, Batch Leaders, Professors, Admins) was crucial. This involved custom permission classes in DRF and careful frontend logic.
  • User Experience for Non-Technical Users: Designing an intuitive interface that is easy for both students and faculty to use, regardless of their technical proficiency, was a primary focus. This involved iterative design and clear labeling.

"The main goal was to replace a manual, often chaotic, system of document sharing (like USB drives or email) with a streamlined, organized, and verifiable digital process internal to the department."

Outcome & Learnings

The PG Document Hub successfully provides a centralized, organized, and efficient system for managing academic documents within the Department of Materia Medica. It has significantly reduced the administrative burden associated with collecting, storing, and tracking PG submissions.

Key learnings from this project include:

  • The importance of clearly defining user roles and their specific needs early in the development process.
  • The power of Django and DRF for rapidly building secure and scalable backend APIs.
  • The benefits of using a modern frontend stack like React with TypeScript and Tailwind CSS for creating maintainable and user-friendly interfaces.
  • Practical experience in configuring and deploying web applications in a restricted local network environment using tools like Waitress and Windows Task Scheduler.

This project has been a valuable practical application of full-stack development skills to solve a real-world problem within an academic setting.


Setup, Installation, and Deployment

For detailed setup, installation, and deployment instructions, please refer to the project's README on GitHub: PG-Document-Hub Repository


Developer Notes