{"id":25494206,"url":"https://github.com/adygcode/wits-2025-s1","last_synced_at":"2025-11-09T03:30:33.718Z","repository":{"id":276895716,"uuid":"926905745","full_name":"AdyGCode/wits-2025-s1","owner":"AdyGCode","description":null,"archived":false,"fork":false,"pushed_at":"2025-02-11T02:36:41.000Z","size":129,"stargazers_count":1,"open_issues_count":7,"forks_count":5,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-11T03:19:31.412Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AdyGCode.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-02-04T04:01:57.000Z","updated_at":"2025-02-11T02:36:46.000Z","dependencies_parsed_at":"2025-02-11T03:29:34.015Z","dependency_job_id":null,"html_url":"https://github.com/AdyGCode/wits-2025-s1","commit_stats":null,"previous_names":["adygcode/wits-2025-s1"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AdyGCode%2Fwits-2025-s1","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AdyGCode%2Fwits-2025-s1/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AdyGCode%2Fwits-2025-s1/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AdyGCode%2Fwits-2025-s1/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AdyGCode","download_url":"https://codeload.github.com/AdyGCode/wits-2025-s1/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239565623,"owners_count":19660159,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-02-18T23:19:33.189Z","updated_at":"2025-11-09T03:30:33.603Z","avatar_url":"https://github.com/AdyGCode.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Student Cheat Sheet SaaS Application Mini Project Brief\n\n### Also on wiki: https://github.com/AdyGCode/wits-2025-s1/wiki\n\n\n\u003c!-- TOC --\u003e\n* [Project Overview](#project-overview)\n  * [Technical Stack](#technical-stack)\n  * [Team Structure and Timeline](#team-structure-and-timeline)\n  * [Development Requirements](#development-requirements)\n  * [Core Infrastructure](#core-infrastructure)\n  * [Data Structure Notes:](#data-structure-notes)\n    * [Packages](#packages-)\n    * [Courses](#courses)\n    * [Clusters](#clusters)\n    * [Units](#units)\n* [Feature Requirements](#feature-requirements)\n  * [1. User Management](#1-user-management)\n  * [2. Authentication \u0026 Authorization](#2-authentication--authorization-)\n  * [3. Roles and Permissions](#3-roles-and-permissions)\n    * [3.1 Role Hierarchy](#31-role-hierarchy)\n    * [3.2 Permission Matrix](#32-permission-matrix)\n  * [4. Course Management](#4-course-management)\n  * [5. Session Management](#5-session-management)\n  * [6. Cheat Sheet Generation](#6-cheat-sheet-generation)\n  * [7. System Administration](#7-system-administration)\n  * [8. Data Import/Export](#8-data-importexport)\n  * [9. Image Management](#9-image-management)\n\u003c!-- TOC --\u003e\n\n\n\n# Project Overview\nWeb-based system for managing student class rosters with photos and personal details, providing lecturers with visual cheat sheets for their sessions.\n\nThe project does NOT need a timetabling capability. It acts as a cheat sheet for lecturers.\n\n## Technical Stack\n- Laravel 11\n- PHP 8.3\n- SQL Database (Primary)\n- Optional: Livewire, MongoDB\n- GitHub for version control\n\n## Team Structure and Timeline\n- 4 team members\n- 3-week development timeline\n- Collaborative development via GitHub repository\n- Project management through GitHub Projects and Issues\n\n## Development Requirements\n- Version Control:\n    - GitHub repository\n    - Branch protection rules\n    - Pull request workflow\n    - Code review process\n- Testing:\n    - Pest testing framework\n    - Required test coverage\n    - Integration tests\n    - Unit tests\n- Documentation:\n    - Code documentation\n    - API documentation\n    - User guides\n    - Setup instructions\n\n## Core Infrastructure\n- Laravel 11 based system\n- PHP 8.3 compatibility\n- SQL database (SQLite for development)\n- Secure file storage system\n- Domain email validation system\n- Automated backup system\n\n## Data Structure Notes:\n- Packages (contains multiple courses) - `The general category of a course ie. the diploma of web development is part of the package of IT`\n- Courses (core, specialist, elective units) - `the diploma/certificate`\n- Units (part of courses and clusters)\n- Clusters (1-8 units)\n\n\n### Packages \n| **National Code** | **Title**                                  | **TGA Status** |\n|-------------------|--------------------------------------------|----------------|\n| BSB               | Business Services Training Package         | Current        |\n| CUA               | Creative Arts and Culture Training Package | Current        |\n- TGA stands for \"Training.gov.au\"\n\n\n### Courses\n| **National Code** | **AQF Level**     | **Title** | **TGA Status** | **State Code** | **Nominal Hours** | **Type**      | **QA** | **StateCode** | **NatCode** | **NatTitle** | **NatCodeAndTitle**               |\n|-------------------|-------------------|-----------|----------------|----------------|-------------------|---------------|--------|---------------|-------------|--------------|-----------------------------------|\n| CUA40715          | Certificate IV in | Design    | Current        | AZN5           | 665               | Qualification | AZN5   | AZN5          | CUA40715    | Design       | CUA40715 Certificate IV in Design |\n| CUA40113          | Certificate IV in | Dance     | Current        | J697           | 690               | Qualification | J697   | J697          | CUA40113    | Dance        | CUA40113 Certificate IV in Dance  |\n\n\n### Clusters\n| **Code** | **Title**            | **Qualification** | **Qualification State Code** | **Unit1** | **Unit2** | **Unit3** | **Unit4** | **Unit5** | **Unit6** | **Unit7** | **Unit8** |\n|----------|----------------------|-------------------|------------------------------|-----------|-----------|-----------|-----------|-----------|-----------|-----------|-----------|\n| ADVPROG  | Advanced Programming | ICT50220          | AC21                         | ICTPRG535 | ICTPRG547 |           |           |           |           |           |           |\n| BIGDAT   | Big Data             | ICT50220          | AC21                         | ICTDAT503 | ICTDAT501 | BSBDAT501 | ICTDAT503 |           |           |           |           |\n\n\n### Units\n| **National Code** | **Title**                                       | **TGA Status** | **State Code** | **Nominal Hours** |\n|-------------------|-------------------------------------------------|----------------|----------------|-------------------|\n| BSBMKG402         | Analyse consumer behaviour for specific markets | Replaced       | AUJ44          | 50                |\n| BSBADM101         | Use business equipment and resources            | Current        | AUJ55          | 20                |\n\n\n\n\n# Feature Requirements\n\n## 1. User Management\n- Profile Requirements:\n    - Given and/or Family name (at least one required)\n    - Preferred name (optional)\n    - Preferred pronouns\n    - Valid email from approved domain\n    - Profile photo\n- Change request system for updates\n- Email verification and bounce checking\n\n\n## 2. Authentication \u0026 Authorization \n- Role-based access control:\n    - Super Admin: Full system access\n    - Admin: System management\n    - Staff: Class management\n    - Student: Personal profile access\n- Email verification system\n- Domain whitelist management\n- Password security requirements\n\n\n## 3. Roles and Permissions\n\n### 3.1 Role Hierarchy\n- Super Admin\n    - System configuration\n    - Role management\n    - Domain whitelist management\n- Admin\n    - User management\n    - Data import/export\n    - Backup management\n- Staff\n    - Session management\n    - Student approval\n    - Report generation\n- Student\n    - Profile management\n    - Change requests\n    - Photo submission\n\n### 3.2 Permission Matrix\n| Permission               | SuperAdmin | Admin | Staff | Student |\n| ------------------------ | ---------- | ----- | ----- | ------- |\n| System Configuration     | ✓          | -     | -     | -       |\n| Manage Roles             | ✓          | -     | -     | -       |\n| Manage Domains           | ✓          | ✓     | -     | -       |\n| User Management          | ✓          | ✓     | -     | -       |\n| Backup Management        | ✓          | ✓     | -     | -       |\n| Import/Export            | ✓          | ✓     | -     | -       |\n| Class Session Management | ✓          | ✓     | ✓     | -       |\n| Approve Changes          | ✓          | ✓     | ✓     | -       |\n| View All Class Sessions  | ✓          | ✓     | -     | -       |\n| View Own Class Sessions  | ✓          | ✓     | ✓     | -       |\n| Edit Own Profile         | ✓          | ✓     | ✓     | ✓       |\n| Request Changes          | ✓          | ✓     | ✓     | ✓       |\n\n\n## 4. Course Management\n- Data Structure:\n    - Packages (contains multiple courses) - `The general category of a course ie. the diploma of web development is part of the package of IT`\n    - Courses (core, specialist, elective units) - `the diploma/certificate`\n    - Units (part of courses and clusters)\n    - Clusters (1-8 units)\n- Import Capabilities:\n    - CSV/Excel file support\n    - Data validation\n    - Error handling\n    - Relationship verification\n\n\n## 5. Session Management\n- Features:\n    - Course/Cluster assignment\n    - Start/End dates\n    - Duration tracking\n    - Lecturer assignment\n- Import Options:\n    - CSV/Excel import\n    - ICS feed integration\n    - Manual entry\n- Scheduling:\n    - Conflict detection\n    - Calendar interface\n    - Duration validation\n\n\n## 6. Cheat Sheet Generation\n- Features:\n    - Student photos\n    - Names (Given, Family, Preferred)\n    - Pronouns\n    - Session-specific grouping\n    - Print optimization\n    - Layout customization\n\n\n## 7. System Administration\n- Backup Management:\n    - Daily automated backups\n    - 30-day retention\n    - Monthly archives\n    - Annual archives\n    - Integrity verification\n- System Configuration:\n    - Email domain management\n    - Role/Permission settings\n    - System parameters\n    - Import/Export settings\n\n\n## 8. Data Import/Export\n- Import Validation:\n    - File format verification\n    - Schema validation\n    - Data type checking\n    - Relationship integrity\n    - Error reporting\n- Export Features:\n    - Full system backup\n    - Selective data export\n    - Multiple format support\n\n\n## 9. Image Management\n- Upload Requirements:\n    - PNG/JPG formats only\n    - Size: 250KB maximum\n    - Dimensions: 512x512px minimum, 1024x1024px maximum\n- Processing Features:\n    - Automatic resizing\n    - Interactive cropping interface\n    - AI-assisted face detection\n    - Head/shoulders positioning guide\n    - Web Cam capture interface\n    - Drag-and-drop upload\n- Storage Features:\n    - UUID-based file naming\n    - Secure storage location\n    - Download prevention\n    - Multiple image versions (original, processed, thumbnail)\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadygcode%2Fwits-2025-s1","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fadygcode%2Fwits-2025-s1","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadygcode%2Fwits-2025-s1/lists"}