Admin Console team PHP - COS-301/graduates GitHub Wiki
WIKI DOCUMENT
Formulated by Project Manager: Miss Sarah King (u20481218)
Team Members
- Project Manager: Sarah King (u20481218)
- Business Analyst: Micheal Geere (u20466570)
- API Engineer: Thebe Kgaphola (u18371435)
- Data Engineer: Kaylee Posthumus (u19062359)
- Designer: Tariq Carrim (u20581018)
- Developer Operations: Kaylee Posthumus (u19062359)
- Service Engineer: Neo Seefane (u19114738)
- Tester: Joshua Young (u20442018)
- UI Engineer: Bevan Slabbert (u20528036)
INTRODUCTION
Our team was assigned the “Admin Interface to Manage the Site” feature upon feature delegation by the Project Managers. We immediately began aiding our Business Analyst in conducting research into our feature and formulated the following feature description:
“The admin interface will be implemented to allow site administrators to manage the system through specialised admin accounts. Once an admin logs into such an account - they will have access to all content available on the website that other standard users can see. Additionally, they will have access to the admin toolbar. This will allow the admin user to create any standard user (student/business/business rep) account, create admin accounts, suspend/reactivate standard user accounts (in the case of misconduct), approve/reject the registration of standard user accounts, archive content from the website and edit the site settings. The admin will also be able to assist standard users with changing vital information on their profiles upon agreement with said standard user. Extensive security measures will be implemented to ensure the safe and ethical use of the admin interface.”
FUNCTIONAL REQUIREMENTS
- FR1: Administrators are required to have full access to the graduates portal along with an additional admin console from which they can perform administrative actions.
- FR2: Administrators must be able to create other administrative accounts.
- FR3: Administrators must be able to create any standard user (student/business/business rep) account.
- FR4: Administrators must be able to approve or suspend a standard user account that is created by any standard user.
- FR5: Administrators must be able to suspend standard user accounts (in the case of misconduct) as well as re-activate them.
- FR6: Administrators must be able to archive content on the website, hiding the content from all standard users because of misconduct or other reasons but still being able to access it themselves.
- FR7: Administrators must be able to edit the settings of the graduate portal.
- FR8: Administrators must have the ability to change limited details of a standard user account upon agreement with that specific standard user.
- FR9: Administrators should be provided with an interface to perform all of the aforementioned actions.
Use Case Diagram:
NON-FUNCTIONAL REQUIREMENTS
Quality Requirements:
- N-FR1: Availability - The administrative interface/console must be accessible at any time to an administrative user.
- N-FR2: Usability - The console must also allow for simple creation/suspension/approval of user accounts.
- N-FR3: Scalability - The console must able to register/create large groups of user accounts (i.e., a new year of COS students)
- N-FR4: Performance - Administrative and user accounts should be created/suspended within a reasonable timeframe. Administrative accounts must be able to immediately archive content on the website
Architectural Requirements:
- N-FR5: Security – Administrators should be the only type of user account able to access the admin console.
- N-FR6: Scalability – The system should be able to administrate all future features which are added to the graduates portal.
Architectural Constraints:
The system must follow Command and Query Responsibility segregation (CQRS).
COMPONENTS/SERVICES OF OUR FEATURE
Requirements:
Software Requirements Specification compiled by team Business Analyst: Mr Micheal Geere (u20466570).
Link to view SRS Documentation: https://drive.google.com/file/d/1sMa09tRVIkN709J_VzcLor_YVsmG_sYj/view
Design:
Wireframes, Design Mockups and Design Components of the Admin Console produced by team Designer: Mr Tariq Carrim (20581018).
Link to Design Page of the Repository Wiki: https://github.com/COS-301/graduates/wiki/Design#1-ui-kit
Libraries:
Data-access, API and Service layer libraries created by team Data Engineer: Miss Kaylee Posthumus (u19062359).
Database Design:
Entire Database design and schema implemented by team Data Engineer: Miss Kaylee Posthumus (u19062359).
Link to the Database Page of the Repository Wiki: https://github.com/COS-301/graduates/wiki/Database
Contracts:
Contracts discussed, compiled and finalised by team API Engineer: Mr Thebe Kgaphola (u18371435), Service Engineer: Mr Neo Seefane (u19114738), Data Engineer: Miss Kaylee Posthumus (u19062359) and Project Manager: Miss Sarah King (u20481218)
Link to view contract documentation: https://drive.google.com/file/d/17m1r7tR8L10-MUSm4j28lT4N7Xy7fghH/view
User Interface:
User Interface implemented by team UI Engineer: Mr Bevan Slabbert (20528036).
https://github.com/COS-301/graduates/wiki/Admin-Console#ui-for-admin-console
Service Layer:
Service Layer implemented by team Service Engineer: Mr Neo Seefane (u19114738).
https://drive.google.com/file/d/17akcWRcCTtoeOGAQSevh45X7GZjzMbC8/view?usp=sharing
API:
API implemented by team API Engineer: Mr Thebe Kgaphola (u18371435). Note: the API was not merged into the release branch as a successful PR was not attained.
https://drive.google.com/file/d/1ZLxmepmA6-nlmA7U_1toJ0DGt_bJQe1Y/view?usp=sharing https://drive.google.com/file/d/1q3Oy3-3-5Y4bIzG5As-trHob1AuIu5Ha/view?usp=sharing
Testing:
Documentation specifying protocols for software testing compiled by team Tester:Mr Joshua Young (u20442018).
https://drive.google.com/file/d/1wt8iuYThBqXj1iHK41x45tqQAAAasheo/view?usp=sharing
Usability tests conducted by team Tester: Mr Joshua Young (u20442018)
https://drive.google.com/file/d/1lIangY0c8nGs08LgI4zetjLilzLt5FXt/view?usp=sharing
Sprint 1 Presentation:
The Sprint 1 demo presentation was compiled and presented by team Project Manager: Miss Sarah King (u20481218).
https://drive.google.com/file/d/1lIangY0c8nGs08LgI4zetjLilzLt5FXt/view?usp=sharing
Wiki Document:
This Wiki document presenting work completed during Sprint 1 & 2 produced by team Project Manager: Sarah King (u20481218).
#UI Docs
Components used:
- Header (UI kit)
- Footer (UI kit; not included in feature because of wrongful positioning)
- Navbar (Angular mat menu used for mobile, own navbar designed for desktop view)
- Permissions and role menus (Angular mat menu)
- Other elements like inputs and buttons
Routing
Lazy loading was used, where the user can access the page by adding /admin-console to the url.
Future development
Linking of the API to the UI, aswell as adding a footer once the component's styling is compatible with the page.