Skip to content

a full-stack leave management application for hospital staff leave operations built using the MERN stack.

License

Notifications You must be signed in to change notification settings

supunxiii/hslms

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Overview

HSLMS (Hospital Staff Leave Management System) is a full-stack leave-management platform for COMP60022-KN2 - Decision Analytics II. The project investigates operational challenges in Sri Lankan state hospitals through a Divisional Hospital case study, then delivers a data-engineered solution with MongoDB-backed analytics, React-based user interfaces, and an Express/Node.js API for complete staff leave workflows.

MongoDB Atlas Mongoose 8.6.3 Express.js 4.21.0 React 18.3.1 React DOM 18.3.1 Node.js >=16.20.1 NPM Bootstrap 5.3.3 React Bootstrap 2.10.4 Axios 1.7.5 CORS 2.8.5 Multer 1.4.5-lts.1 Validator 13.12.0 fast-csv 5.0.1 Moment.js 2.30.1 LaTeX Overleaf

Features

HSLMS provides the following features:

  1. Problem Investigation and Process Mapping

    • Analysed leave-management bottlenecks in Sri Lankan state hospitals using a Divisional Hospital case study
    • Documented misplaced forms, manual calculations, and legacy procedures requiring digitalisation
  2. Data-Engineered Architecture

    • Proposed data pipelines for collection, validation, storage, retrieval, and analytics
    • Compared SQL and NoSQL options and selected MongoDB for semi-structured hospital data
  3. MongoDB Schema and Data Validation

    • Designed collections for doctors, major staff, and minor staff
    • Validated collections with real cadre datasets and imported data via mongoimport, Shell, and Compass
  4. Query Library and Analytics

    • Built a query library with operators, regex queries, and aggregation pipelines
    • Integrated MongoDB Atlas Charts for live dashboards and KPI reporting
  5. Front-end Experience and UI Design

    • Produced complete wireframes for all HSLMS interfaces
    • Built the React front-end with structured components, forms, and data rendering
  6. API Development and Testing

    • Implemented Express/Node.js CRUD APIs across all staff types
    • Verified API endpoints in Postman before UI integration
  7. Administrative Export Support

    • Added CSV export functionality for offline administrative use
  8. Evaluation and Reporting

    • Formulated analytical questions and hypotheses to study leave patterns
    • Presented workflow improvements and outcomes in a LaTeX-compiled academic report

Technologies Used

  • MongoDB Atlas: Cloud database service (version managed by Atlas)
  • MongoDB Atlas Charts: Live dashboarding (version managed by Atlas)
  • Mongoose 8.6.3: ODM for MongoDB
  • Express.js 4.21.0: REST API framework
  • Node.js >=16.20.1: Backend runtime (minimum requirement from Mongoose 8.6.3)
  • React 18.3.1: Front-end framework
  • React DOM 18.3.1: React rendering layer
  • Bootstrap 5.3.3: Core UI styling
  • React Bootstrap 2.10.4: React UI components
  • Axios 1.7.5: HTTP client
  • CORS 2.8.5: Cross-origin resource support
  • Multer 1.4.5-lts.1: File upload handling
  • Validator 13.12.0: Input validation
  • fast-csv 5.0.1: CSV import/export
  • Moment.js 2.30.1: Date and time utilities

Project Specifications

  • Course: COMP60022-KN2 - Decision Analytics II
  • Application Type: Full-stack leave-management system with analytics dashboards
  • API Port: 6010 (Express server)
  • Data Handling: MongoDB Atlas with validated collections and query library
  • Analytics: MongoDB Atlas Charts and hypothesis-driven evaluation

User Interfaces

UIs

HSLMS UI 1

UIs

HSLMS UI 2

UI

HSLMS UI 3

Getting Started

To run HSLMS locally, follow these steps:

  1. Clone the repository:

    git clone https://github.com/supunxiii/hslms.git
  2. Navigate to the project directory:

    cd hslms
  3. Install backend dependencies:

    cd server
    npm install
  4. Create a .env file in server and set the MongoDB connection string:

    DATABASE=your_mongodb_atlas_connection_string
  5. Start the API server:

    node app.js
  6. In a new terminal, install client dependencies and start the React app:

    cd client
    npm install
    npm start

Project Structure

hslms/
├── client/                         # React front-end
├── data/                           # Data sets and imports
├── server/                         # Express API and MongoDB models
├── package.json                    # Root dependencies
├── package-lock.json               # Root lockfile
├── README.md                       # Project documentation
└── LICENSE                         # Licence

Developer

This project was developed by:

  • Supun Wijesooriya - Developer

Contributing

Contributions are welcome. If you would like to contribute:

  1. Fork the repository.

  2. Create a new branch:

    git checkout -b feature/your-feature-name
  3. Commit your changes:

    git commit -m "Add your commit message"
  4. Push your branch:

    git push origin feature/your-feature-name
  5. Open a pull request with a clear description of your changes.

License

This project is open-source and is licensed under the MIT License.

Contact

For any enquiries or feedback, please contact the developer:


Designed and developed in September 2024