CSE UAP System Documentation

Comprehensive guide to all features, user roles, permissions, and system functionality

Table of Contents

1. System Overview

The CSE UAP system is a comprehensive web-based platform designed for managing academic programs, student activities, faculty information, and departmental communications for the Department of Computer Science and Engineering at the University of Asia Pacific (UAP).

Core Modules:

  • People Management: User accounts, profiles, permissions, and access control
  • Office/Posts: Departmental notices, events, seminars, routines, and admission results
  • Clubs: Student club management, activities, positions, and member invitations
  • Academics: Course management, program outcomes, learning outcomes, and curriculum mapping
  • Designs: Homepage feature cards, hero tags, admission elements, and content management

2. User Types and Roles

2.1 User Types

The system supports four distinct user types, each with specific roles and capabilities:

👨‍🏫 Faculty

  • Teaching staff members of the department
  • Can be assigned as club conveners
  • Can have special roles: Head of Department, Department Proctor, Admission Coordinators
  • Can upload CV/resume documents
  • Profile includes: name, shortname, designation, email, phone, office location, research interests, publications, education, experience
  • Can be granted various permissions for managing content and users

👨‍💼 Officer

  • Administrative staff members
  • Can manage departmental posts, routines, and admission results
  • Profile includes: name, designation, email, phone, office location
  • Can be granted permissions similar to faculty for content management

👨‍🔧 Staff

  • Support staff members (e.g., Lab Assistants)
  • Basic profile with name, designation, email, phone
  • Limited permissions by default

👥 Club Member

  • Student members of various clubs
  • Can be assigned as club presidents or hold positions (Vice President, Secretary, Treasurer, etc.)
  • Can create and manage posts for their clubs
  • Can invite new members via email
  • Profile includes: name, email, phone
  • Automatically have access to manage their own club (if they are convener/president/in position)
  • Do not appear in general user permission management (managed through club membership)

2.2 Power Users

Power users are users who can grant permissions to other users. They must have the is_power_user flag set to True and must have the "Manage User Permissions" permission.

3. Permission System

The system uses a granular permission-based access control system. Permissions are organized into categories and can be granted to users by power users. Superusers have all permissions automatically.

3.1 Available Permissions

📝 Office Permissions

  • Post Notices: Can create and edit office notices (restricted to Faculty/Officer roles)
  • Manage All Posts: Can create, edit, and delete all office posts (restricted to Faculty/Officer roles)
  • Post Routines: Can create and manage class routines/timetables (restricted to Faculty/Officer roles)
  • Post Admission Results: Can publish admission test results (restricted to Faculty/Officer roles)

👥 Club Permissions

  • Manage All Clubs: Can create, edit, and manage all clubs (restricted to Faculty/Officer roles)
  • Note: Club conveners automatically have access to manage their own clubs (no permission needed)

🎨 Design Permissions

  • Edit Feature Cards: Can edit feature cards on the homepage (any role)
  • Edit Head Message: Can edit message from the head of department (any role)

👤 User Management Permissions

  • Manage User Permissions: Can grant/revoke permissions and create users (any role, but requires power user status)
  • Note: This permission cannot be granted through the user-facing permission management page (prevents self-escalation)

3.2 Permission Management

  • Power users can view all users (except club members) and grant/revoke permissions
  • Permissions are tracked with audit trail (who granted, when, active status)
  • Club members are excluded from permission management (they manage clubs through membership)
  • There's a separate "Manage Allowed Emails" tab for managing email whitelist (includes club members)

4. Features by Module

4.1 People Management

User Registration & Authentication

  • Email-based registration system with whitelist (AllowedEmail)
  • Users can only sign up if their email is in the AllowedEmail list
  • Password reset functionality with secure tokens (24-hour expiration)
  • User types are automatically assigned based on AllowedEmail entry

User Profiles

  • Each user type has a specialized profile (Faculty, Officer, Staff, ClubMember)
  • Profile pages show user information, assigned permissions, and action cards
  • Action cards appear based on user permissions (e.g., "Manage Your Posts", "Manage Clubs")
  • Faculty profiles include research, publications, education, experience

Allowed Email Management

  • Power users can manage allowed emails through "Manage User Permissions" page
  • Separate tab for "Manage Allowed Emails" (includes club members)
  • Can create, edit, and bulk delete allowed emails
  • Safeguards prevent deleting emails linked to active users or users with posts
  • Club conveners can invite new members by creating allowed emails (sends invitation email)

4.2 Office/Posts Management

Posts (Notices, Events, Seminars, Workshops)

  • Users with "Post Notices" permission can create and edit their own posts
  • Users with "Manage All Posts" permission can manage all posts
  • Post types: Notice, Events, Seminars, Workshop, Others
  • Features: Short title (max 4 words), long title, tags, rich text description, file attachments (up to 10), pinning (max 3 pinned posts)
  • Posts can be filtered by creator, pinned status, post type, and searched
  • Bulk delete functionality for selected posts

Class Routines

  • Users with "Post Routines" permission can create and manage class timetables
  • Routines are organized by: Academic Year, Semester (Fall/Spring), Year-Semester (1-1 to 4-2), Section (A-J)
  • Each routine has a unique combination of these fields
  • Routine images are uploaded and displayed on the website

Admission Results

  • Users with "Post Admission Results" permission can publish admission test results
  • Results are organized by: Academic Year, Semester, Slot number
  • Each result includes rich text content and an official PDF document
  • Unique combination of year, semester, and slot prevents duplicates

4.3 Club Management

Club Creation and Management

  • Users with "Manage All Clubs" permission can create, edit, and delete clubs
  • Club fields: Name (required), Short Name, Serial Number, Motto, Description, Convener (Faculty), President (ClubMember), Logo (1:1 ratio), Cover Photo (21:6 ratio), Social Media Links
  • Bulk delete functionality for selected clubs
  • Club conveners automatically have access to manage their own clubs

Club Positions

  • Conveners can assign positions (Vice President, Secretary, Treasurer, etc.) for specific semesters
  • Positions can be filled by Faculty or Club Members
  • Each position is tied to: Academic Year, Semester, Position Title
  • Positions can be reordered using drag-and-drop interface
  • When adding a new member email to a position, the system creates an AllowedEmail entry and sends invitation email

Club Posts

  • Club conveners, presidents, and members in positions can create posts for their clubs
  • Post types: Event, Seminar, Contest, Workshop, Training, Other
  • Features: Short title, long title, tags, rich text description, start/end date-time, pinning (max 3 per club)
  • Posts can be filtered by type, searched, and sorted (pinned, newest, oldest, by title)
  • Posts are displayed on club detail pages and the activities page

Member Invitations

  • Club conveners can invite new members by creating allowed emails
  • System automatically sends invitation email with signup instructions
  • If email sending fails, a warning message is displayed with the error
  • Invited users can sign up using their email address

4.4 Academics Management

Programs

  • Academic programs (e.g., BSc in CSE, MCSE, BAETE)
  • Each program has Program Learning Outcomes (PLOs) aligned with Washington Accord standards
  • PLOs are numbered (PLO1, PLO2, ..., PLO12) and sorted numerically

Courses

  • Courses belong to programs and are organized by year-semester (1-1 to 4-2)
  • Course fields: Course Code, Title, Credit Hours, Contact Hours, Course Type (Theory/Lab), Prerequisites, Course Outline PDF
  • Courses can be viewed publicly on the website
  • Courses are displayed organized by program and year-semester

Course Learning Outcomes (CLOs)

  • Each course has multiple CLOs (typically 3-5 per course)
  • Each CLO maps to exactly one Program Learning Outcome (PLO)
  • CLOs include: Sequence Number, Statement, Mapped PLO, Bloom's Taxonomy Level, Knowledge Profile, Problem Attribute, Activity Attribute, Total Assessment Marks, Activity Type
  • CLOs are used to calculate student lifetime statistics

4.5 Design/Homepage Management

Feature Cards

  • Users with "Edit Feature Cards" permission can manage feature cards
  • First 2 feature cards (lowest serial numbers) are managed only by super admin via Django admin
  • Feature cards include: Serial Number, Picture (1:1 ratio, auto-cropped to 400x400), Caption, Title, Rich Text Description
  • Cards can be activated/deactivated
  • Cards are displayed on the homepage hero section

Head of Department Message

  • Users with "Edit Head Message" permission can edit the head's message
  • The message uses the first feature card (lowest serial number)
  • Message opens in a glass background modal when clicked on homepage
  • Modal displays full message with profile picture and styling

Hero Tags

  • Short tags displayed on the homepage (max 20 characters)
  • Can be activated/deactivated
  • Ordered by serial number

Admission Elements

  • Content sections for admission pages
  • Include rich text content and optional curriculum PDFs
  • Ordered by serial number

5. Course Management and Mapping

5.1 Adding Courses

Courses are added through the "Add Course" interface (requires course management permission). The process involves:

  1. Basic Information: Select program, enter course code, title, credit hours, contact hours, course type (Theory/Lab), year-semester
  2. Prerequisites: Select prerequisite courses (if any)
  3. Course Outline: Upload PDF document (optional)
  4. Course Learning Outcomes (CLOs): Add multiple CLOs with the following for each:
    • Sequence Number (1, 2, 3, ...)
    • Statement (what students should be able to do)
    • Mapped Program Learning Outcome (PLO) - exactly one per CLO
    • Bloom's Taxonomy Level (K1-K6 for Cognitive, A1-A5 for Affective, P1-P5 for Psychomotor)
    • Knowledge Profile (K1-K8)
    • Problem Attribute (P1-P7)
    • Activity Attribute (A1-A5, optional)
    • Total Assessment Marks (marks allocated for this CLO)
    • Activity Type (e.g., Lecture, Tutorial, Laboratory Session)

5.2 Course to PLO Mapping

Each Course Learning Outcome (CLO) maps to exactly one Program Learning Outcome (PLO). This mapping is:

  • One-to-One: Each CLO maps to one PLO (not many-to-many)
  • Cumulative: Multiple CLOs from different courses can map to the same PLO
  • Assessment-Based: The total assessment marks for all CLOs mapping to a PLO contribute to that PLO's statistics
  • Credit-Based: Course credit hours are also aggregated for each PLO

5.3 Attribute Mapping

Each CLO also includes detailed attributes for comprehensive skill assessment:

  • Bloom's Taxonomy: Cognitive (K1-K6), Affective (A1-A5), Psychomotor (P1-P5) - measures learning level
  • Knowledge Profiles (K1-K8): Type of knowledge being addressed
  • Problem Attributes (P1-P7): Complexity and nature of problems
  • Activity Attributes (A1-A5): Type of engineering activity required

6. Student Lifetime Statistics Calculation

The system calculates comprehensive statistics showing what a student will target (in terms of marks distribution) throughout their 4-year BSc in CSE program. These statistics are displayed on the homepage and program detail pages.

6.1 Calculation Process

For a given program (e.g., BSc in CSE), the system:

  1. Retrieves all courses for the program
  2. For each course:
    • Gets the course credit hours
    • Retrieves all Course Learning Outcomes (CLOs) for that course
  3. For each CLO:
    • Adds the course credit hours to the mapped PLO's credit total
    • Adds the CLO's assessment marks to the mapped PLO's marks total
    • Adds credits and marks to the Bloom's Taxonomy level (K1-K6, A1-A5, P1-P5)
    • Adds credits and marks to the Knowledge Profile (K1-K8)
    • Adds credits and marks to the Problem Attribute (P1-P7)
    • Adds credits and marks to the Activity Attribute (A1-A5) if present
  4. Calculates percentages: For each category, calculates the percentage of total marks

6.2 Statistics Displayed

The calculated statistics are displayed in tables showing:

  • Program Learning Outcomes (PLOs): For each PLO (PLO1-PLO12), shows total credits, total marks, and percentage of total marks
  • Bloom's Taxonomy Levels: Split into three domains:
    • Cognitive Domain (K1-K6): Remember, Understand, Apply, Analyze, Evaluate, Create
    • Affective Domain (A1-A5): Receiving, Responding, Valuing, Organizing, Characterizing
    • Psychomotor Domain (P1-P5): Perception, Set, Guided Response, Mechanism, Complex Overt Response
  • Knowledge Profiles (K1-K8): Shows distribution across different knowledge types
  • Problem Attributes (P1-P7): Shows distribution across problem complexity levels
  • Activity Attributes (A1-A5): Shows distribution across activity types

6.3 Display Locations

  • Homepage: Statistics for BSc in CSE program displayed under "Vision, Mission, and PEO" section
  • Program Detail Pages: Statistics for each program displayed in the "You Should Know" section
  • Admission Pages: Statistics displayed for relevant programs

6.4 Example Calculation

If a course "CSE 1101" (3 credits) has a CLO that:

  • Maps to PLO1
  • Has Bloom's level K3 (Apply)
  • Has Knowledge Profile K2
  • Has Problem Attribute P2
  • Has Activity Attribute A1
  • Has 30 assessment marks

Then the system adds:

  • 3 credits and 30 marks to PLO1
  • 3 credits and 30 marks to Bloom's K3
  • 3 credits and 30 marks to Knowledge Profile K2
  • 3 credits and 30 marks to Problem Attribute P2
  • 3 credits and 30 marks to Activity Attribute A1

This process is repeated for all CLOs across all courses in the program, and percentages are calculated based on total marks in each category.

7. Club Management System

7.1 Club Structure

  • Club: Main entity with name, description, convener (Faculty), president (ClubMember), logo, cover photo, social links
  • Positions: Semester-based positions (Vice President, Secretary, Treasurer, etc.) assigned to Faculty or Club Members
  • Posts: Club announcements, events, seminars, contests, workshops, training sessions
  • Members: Club members who can be assigned to positions and create posts

7.2 Club Access Control

  • Manage All Clubs: Users with this permission (Faculty/Officer) can create, edit, delete any club
  • Club Convener: Automatically has access to manage their own club (no permission needed)
  • Club President: Automatically has access to manage their club's posts
  • Position Holders: Members in positions (Vice President, Secretary, etc.) can manage club posts

7.3 Posting Activities

Club members (conveners, presidents, position holders) can create posts for their clubs:

  1. Navigate to their club's detail page
  2. Click "Manage Posts" (if they have access)
  3. Create a new post with:
    • Post type (Event, Seminar, Contest, Workshop, Training, Other)
    • Short title and long title
    • Tags (comma-separated)
    • Rich text description
    • Start and end date-time (optional)
    • Pin option (max 3 pinned posts per club)
  4. Posts are displayed on the club detail page and the activities page

7.4 Managing Routines (Class Timetables)

Class routines are managed through the Office module, not Clubs. Users with "Post Routines" permission can:

  • Create routines for specific: Academic Year, Semester, Year-Semester, Section
  • Upload routine images (timetables)
  • Each combination of year, semester, year-semester, and section is unique
  • Routines are displayed on the website for students to view

7.5 Member Invitation Process

  1. Club convener navigates to "Manage Allowed Emails" for their club
  2. Clicks "Add Allowed Email"
  3. Enters the email address of the person to invite
  4. System creates an AllowedEmail entry with user_type='club_member'
  5. System automatically sends an invitation email with:
    • Club name and convener name
    • Signup instructions
    • Direct link to signup page
  6. If email sending fails, a warning is displayed with the error, but the allowed email is still created
  7. Invited user can sign up using their email address
  8. After signup, they become a ClubMember and can be assigned to positions

8. System Workflows

8.1 User Registration Workflow

  1. Power user or super admin adds email to AllowedEmail list (or club convener invites member)
  2. User receives invitation email (if sent by convener) or is informed their email is whitelisted
  3. User visits signup page and enters: email, full name, password
  4. System checks if email exists in AllowedEmail list
  5. System checks if email is active and not blocked
  6. System creates BaseUser account with user_type from AllowedEmail
  7. System creates appropriate profile (Faculty, Officer, Staff, or ClubMember)
  8. User is automatically logged in and redirected to profile page

8.2 Permission Granting Workflow

  1. Power user (with "Manage User Permissions" permission) navigates to "Manage User Permissions"
  2. System displays list of all active users (except club members)
  3. Power user selects a user
  4. System displays all available permissions (except "Manage User Permissions" to prevent self-escalation)
  5. Power user checks/unchecks permissions for the user
  6. Power user clicks "Save Permissions"
  7. System creates/updates UserPermission records with audit trail (granted_by, granted_at)
  8. User immediately has access to features based on granted permissions

8.3 Course Creation Workflow

  1. User with course management permission navigates to "Add Course"
  2. User enters basic course information (code, title, credits, type, year-semester)
  3. User selects prerequisites (if any)
  4. User uploads course outline PDF (optional)
  5. User adds Course Learning Outcomes (CLOs):
    • For each CLO, enters sequence number, statement
    • Selects one Program Learning Outcome (PLO) to map to
    • Selects Bloom's Taxonomy level, Knowledge Profile, Problem Attribute, Activity Attribute
    • Enters total assessment marks and activity type
  6. User saves the course
  7. System creates Course and CourseOutcome records
  8. Course appears in course listings and contributes to program statistics

8.4 Post Creation Workflow

  1. Office Posts:
    • User with "Post Notices" permission can create their own posts
    • User with "Manage All Posts" permission can create and manage all posts
    • User creates post with type, titles, description, attachments, pinning
    • Post appears on homepage and office posts page
  2. Club Posts:
    • Club convener, president, or position holder navigates to their club
    • Clicks "Manage Posts"
    • Creates post with type, titles, description, date-time, pinning
    • Post appears on club detail page and activities page

8.5 Statistics Calculation Workflow

  1. User visits homepage or program detail page
  2. System retrieves all courses for the program
  3. For each course, system retrieves all CLOs
  4. For each CLO, system aggregates:
    • Credits and marks to the mapped PLO
    • Credits and marks to Bloom's Taxonomy level
    • Credits and marks to Knowledge Profile
    • Credits and marks to Problem Attribute
    • Credits and marks to Activity Attribute
  5. System calculates percentages for each category
  6. System displays statistics in organized tables on the page

This documentation covers all major and minor features of the CSE UAP system.

For technical implementation details, refer to the source code.