Skip to content
This repository was archived by the owner on Jun 4, 2026. It is now read-only.

gurlivleenkainth2000/OBE-SERVER

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

50 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OBE Platform — Server

Status: Archived (2021-2022). Kept public for portfolio review. Not maintained.

The Node/Express/MongoDB backend for the OBE (Outcome-Based Education) Platform: the REST API and the attainment-computation engine behind the accreditation tool (NBA / Washington Accord).

This is one half of a two-repo project:

  • Server (this repo): the API, data model, and attainment engine.
  • Client: the Angular app, at OBE-CLIENT.

It was my final-year project at Guru Nanak Dev Engineering College, built to meet a real accreditation reporting requirement for the college.

What it does

  • Authenticates faculty against the college's existing LDAP directory, so staff sign in with the accounts they already have.
  • Stores courses, Course Outcomes, assessments, and CO to PO/PSO mappings.
  • Accepts imported student marks and computes direct and indirect attainment, plus attainment gaps.
  • Serves the data the client turns into accreditation PDF reports.
  • Applies role-based filtering on what each user can see.

Tech stack

  • Node.js with Express 4
  • MongoDB via Mongoose 6
  • jsonwebtoken and bcrypt for auth
  • ldapjs for institutional (LDAP) login
  • cors, morgan, dotenv

How it is put together

  • Routes are split per resource (one router and one model per domain noun: courses, course outcomes, assessments, attainment, PO attainment, curriculum, and so on), mounted behind a single token-verification middleware.
  • Documents are intentionally denormalised for read-cheap, write-fan-out access, rather than relying on joins at read time.
  • One marks schema powers two collections (CIA and ESE), selected per request, which keeps the model simple.
  • Attainment routes carry the core domain math: direct attainment, total CO attainment, and PO / PSO calculation.

Running it locally

npm install
# create a .env file (see below)
npm start   # or: nodemon

Environment variables you will need:

  • MONGODB_PROD_URI — MongoDB connection string
  • a JWT secret
  • LDAP connection settings for institutional login

Note: as a graded college project this was never deployed to production, so secret management is basic. Set real secrets via .env before running anywhere that matters.

Authors

Built by Gurlivleen Singh Kainth and Manjot Singh.

License

Source-available for review only. See LICENSE. This is not open-source software: you may read and clone it to evaluate it, but reuse, redistribution, or submission as your own work is not permitted without written permission.

About

Node/Express/MongoDB API and attainment engine for an Outcome-Based Education (OBE) platform — LDAP login, CO/PO/PSO computation, accreditation reports. GNDEC final-year project.

Topics

Resources

License

Stars

Watchers

Forks

Contributors