Skip to content
TThulani
Full-Stack & Web Platforms2025Completed

PTS – Performance Tracking & Project Management System

Duration3 Months
TeamPersonal Project
Year2025

Overview

The Performance Tracking & Project Management System (PTS) is a full-stack, enterprise-ready web application designed for university societies, clubs, and organizations. It replaces manual spreadsheets and paper records by streamlining project management, committee coordination, member performance evaluation, event scheduling, and feedback tracking across four organizational roles.

React 19
Frontend Stack
Vite 7 + React Router 7 + i18next
Express 5
Backend API
Asynchronous Node.js runtime
MongoDB
Database
Mongoose 8 single-connection caching
4 Hierarchy Levels
User Roles
Admin, Chairperson, Committee Head, Member

User Roles & Access Hierarchy

The system defines four distinct user roles with strict role-based access control (RBAC):

  • ADMIN: Overall system administration, user invitations, role assignments, society-wide event management, high-level project creation, and feedback/complaint oversight.
  • CHAIRPERSON: Project owner/leader. Manages project scope, creates project committees, appoints committee heads, assigns tasks with priorities and due dates, and tracks progress.
  • COMMITTEE HEAD: Leads specific functional committees (Logistics, IT, Marketing, Operations) under a project and manages committee-level member task assignments.
  • MEMBER: Society member. Views assigned tasks, updates progress (TODO → IN_PROGRESS → COMPLETED), submits feedback or complaints, and accesses the shared society calendar.

Technologies Used

Frontend & UI
React 19Vite 7React Router DOM v7SASS / SCSSi18next (English, Sinhala, Tamil)react-iconsreact-calendarAxios
Backend & Database
Node.jsExpress.js 5MongoDB (Atlas)Mongoose 8JSON Web Token (JWT)bcryptjsdotenv

System Architecture

The application adopts a modular decoupled architecture connecting a React 19 single-page application with a RESTful Express.js 5 backend powered by MongoDB Atlas.

PTS Decoupled System Architecture

Data Flow & Components
client01
React 19 Client
Multilingual UI (en/si/ta), role-based routes & SASS themes
server02
Express.js 5 Gateway
JWT security guards, regex CORS validation & RBAC middleware
db03
MongoDB Atlas
Mongoose 8 document models with connection handle caching
cloud04
Notification Service
Real-time task alerts, due-soon & overdue deadline dispatchers

Core Functional Modules

1. Authentication & Onboarding

  • Flexible Credentials: Login support using either Email or University Index Number.
  • Secure Invitation Flow: Admins generate account invitations. An invitation token (SHA-256 hashed in database) allows new members to provision their credentials securely upon first sign-in via /set-password.
  • Password Governance: In-app password updates and self-service setting management.

2. Project & Task Hub (/api/pm)

  • Project Lifecycle: Dynamic transition management across UPCOMING, ACTIVE, and COMPLETED project states.
  • Task Scheduling & Priorities: Tasks carry priorities (LOW, MEDIUM, HIGH) and completion statuses (TODO, IN_PROGRESS, COMPLETED).
  • Derived Overdue Status: Overdue state (isOverdue) is calculated dynamically on query based on dueDate and completion status without needing background cron jobs.

3. Committee Management (/api/committee)

  • Create functional committees within projects (e.g., Logistics, IT, Marketing, Operations).
  • Appoint Committee Leads (leadId) and assign member rosters with individual responsibilities.

4. Shared Society Event & Calendar System (/api/event)

  • Manages society events categorized as EVENT, SPECIAL_TASK, MEETING, or DEADLINE.
  • Rendered visually on the interactive react-calendar component on both Admin and Member dashboards.

5. Multilingual Support (i18n)

  • Complete interface translation into English, Sinhala, and Tamil powered by i18next and react-i18next.

6. Smart In-App Notification Engine (/api/notifications)

  • Dispatch alerts for events like TASK_ASSIGNED, TASK_COMPLETED, PROJECT_MEMBER_ADDED, and COMMITTEE_MEMBER_ADDED.
  • Dynamic deadline reminders (“due soon” or “overdue”) with dismissal persistence (DismissedDeadline) to prevent notification fatigue.
tip
Single-Connection Handle Caching

Optimized MongoDB connection handling using Mongoose handle caching (useDb("MPTS", { useCache: true })) to ensure fast response times across high-concurrency request spikes.

Results & Impact

Streamlined Organizational Management

Replaced manual spreadsheets and paper records with a unified, role-based platform that automated task tracking, deadline alerts, and multilingual coordination across university society members.

Key Takeaways & Learnings

  • Designing a 4-tier role-based access control system requires clean permission middleware boundaries.
  • Calculating dynamic status attributes (isOverdue) at read-time reduces cron background overhead.
  • Integrating i18next early simplifies multi-language rendering across complex dashboard views.

Interested in building a system like this?

I am available for full-stack engineering roles, systems consulting, and IoT hardware collaborations.