Skip to content

Latest commit

 

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

🛡️ University Identity Management System (IMS)


📖 1. What is "IMS"?

This system is a professional-grade solution designed to manage university identities (Students, Faculty, Staff, and External). In a university, thousands of people join every year. This system ensures every person gets a Unique Permanent ID that never changes, even if a student later becomes a professor.

🎯 Key Engineering Goals

  • Immutable Identity: IDs like STU20260001 are generated automatically and stay with the person forever.
  • Clean Data Architecture: Using "One-to-One" relationships to separate Student data (like High School grades) from Professor data (like Research areas).
  • Audit Trail: Every status change (e.g., from Pending to Active) is logged in a history table for security.
  • Modern Collaboration: Built using a Dockerized Monorepo for seamless teamwork via GitHub.

🛠️ 2. The Tech Stack

We chose these technologies to ensure the system is fast, secure, and industry-standard:

  • Frontend: React.js + TypeScript (For a responsive, interactive User Interface).
  • Backend: Node.js + TypeScript (For type-safe, high-performance logic).
  • Database: PostgreSQL (A robust relational database for structured data).
  • DevOps: Docker & Docker Compose (To run the entire system in any environment with one command).
  • ORM: Prisma (To communicate safely between the code and the database).

📂 3. Repository Structure (Folder Roles)

The project is organized into a Structured Monorepo. Here is what each folder does:

📁 backend/

This is where the logic happens.

  • src/api/controllers: Receives requests from the Frontend (e.g., "Create a Student").
  • src/core/services: The Logic Center. This generates the Unique IDs ([TYPE][YEAR][NUMBER]) and checks business rules.
  • src/data/models: Defines the PostgreSQL tables (Identity, StudentProfile, etc.).
  • prisma/: Contains the Database Schema and migration files.

📁 frontend/

This is the visual part the university staff interacts with.

  • src/pages/: Full screens like the Search Dashboard and Creation Form.
  • src/services/: Handles AJAX calls (using Axios or fetch) to talk to the Backend.
  • src/components/: Reusable UI parts like Navbars and Buttons.

📁 Root Files

  • docker-compose.yml: The "Manager" that starts Postgres, Backend, and Frontend together.
  • .env: Stores secret keys and database passwords.

🚀 4. How to Run (Step-by-Step)

You don't need to install Database software manually. We use Docker to make it easy.

  1. Install Docker: Download and install Docker Desktop.
  2. Clone the Repo:
    git clone [https://github.com/aymendja/ISM.git](https://github.com/aymendja/ISM.git)
    cd ISM
  3. Start the System:
    docker-compose up --build
  4. Access the App:
    • Frontend: http://localhost:3000
    • Backend API: http://localhost:5000

🧠 5. Database Logic (The "Why")

We use a One-to-One (1:1) Specialization pattern.

  • Identity Table: Stores shared data .
  • Profile Tables: (Student, Faculty, Staff, External) store only what is relevant to that specific role.

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages