# System Validation and Testing

Type |
Dependencies |
Order | 12
Owner | Rose
Section | System Validation
Status | In progress

The verification process for this application primarily consisted of cross-referencing the data values retrieved from the database with the expected values, ensuring that no errors were encountered during data retrieval. Unfortunately, no formal code-based testing, such as unit tests or integration tests, was conducted. Additionally, we ensured that our UI designs closely matched the created UI mockups to maintain visual consistency throughout the application.

In terms of our current testing setup, it primarily revolves around manual testing and validation of the application's features and functionalities. This includes checking that all user stories' acceptance criteria have been successfully completed. While we have been able to confirm that the application meets its defined requirements, a more comprehensive testing strategy, including automated tests, would further enhance the application's reliability and robustness.

User Story 1: Create user stories for the MVP

- Acceptance Criteria:
  1. User stories for the MVP must cover all essential features and functionalities required by the product owner.
  2. User stories should be well-documented, including clear descriptions, acceptance criteria, and any additional context necessary for implementation.

User Story 2: Categorize PO requests and decide on project MVP

- Acceptance Criteria:
  1. PO requests must be categorized based on their priority and impact on the project.
  2. The project MVP must be determined based on the categorized PO requests.
  3. Decisions regarding the MVP should be well-documented and communicated to the relevant stakeholders.

User Story 3: Research technologies needed for MVP (javascript, html, css, express.js, node.js, npm)

- Acceptance Criteria:
  1. Research should provide comprehensive information on the selected technologies, including their compatibility and suitability for the project.
  2. Documentation should include references to reliable sources and any potential alternatives considered during the research.

User Story 4: Discuss project needs with PO

- Acceptance Criteria:
  1. A meeting or discussion with the Product Owner should take place.
  2. Key project requirements, goals, and priorities must be discussed and documented.

User Story 5: Set up GitHub Desktop, GitHub repository, and VSCode

- Acceptance Criteria:
  1. GitHub Desktop, GitHub repository, and Visual Studio Code should be successfully installed and configured.
  2. A new repository for the project must be created on GitHub.
  3. Version control should be set up to track project changes.

User Story 6: Create front end that enables super mentor to create user accounts (super mentor, mentor, mentee)

- Acceptance Criteria:
  1. A front-end interface should be developed to allow super mentors to create user accounts for super mentors, mentors, and mentees.
  2. The interface should collect necessary user information and validate input data.
  3. User accounts must be successfully created and stored.

User Story 7: Design mentee dashboard UI that shows progress within a single pathway

- Acceptance Criteria:
  1. A user-friendly UI for the mentee dashboard must be designed.
  2. The dashboard should display progress within a single learning pathway in a clear and visually appealing manner.

User Story 8: Enable all users to sign in using a username and password

- Acceptance Criteria:
  1. Users should be able to sign in using a valid username and password.
  2. Authentication should be secure and validate user credentials against the database.
  3. Appropriate error handling should be implemented for invalid login attempts.

User Story 9: Create backend that enables super mentor to create user accounts (super mentor, mentor, mentee)

- Acceptance Criteria:
  1. A backend API must be implemented to handle user account creation by super mentors.
  2. The API should validate input data, create user accounts, and store them in the database.
  3. Proper error handling should be in place.

User Story 10: Users with accounts created by super mentor can sign in with provided credentials

- Acceptance Criteria:
  1. Users whose accounts were created by super mentors should be able to successfully sign in using the credentials provided during account creation.
  2. Authentication should be validated against the database.

User Story 11: Design UI side menu bar components for mentors, supermentors, and mentees

- Acceptance Criteria:
  1. UI side menu bar components must be designed for mentors, super mentors, and mentees.
  2. Each menu component should provide access to relevant features and functionality based on user roles.

User Story 12: Design a user profile UI

- Acceptance Criteria:
  1. A user profile UI must be designed, allowing users to view and edit their profile information.
  2. Users should have the ability to update their bio, school, and interests.

User Story 13: Design mentor/supermentor dashboard UI that shows progress of all assigned mentees

- Acceptance Criteria:
  1. A dashboard UI for mentors and super mentors must be designed.
  2. The dashboard should display the progress of all their assigned mentees within their respective learning pathways.

User Story 14: Design mentee dashboard UI that shows all assigned pathways

- Acceptance Criteria:
  1. A dashboard UI for mentees must be designed.
  2. The dashboard should display all assigned learning pathways for the mentee.
  3. The design should provide an intuitive and informative user experience.

User Story 15: Allow supermentor to register another user after completing one registration

- Acceptance Criteria:
  1. Super mentors should have the ability to register additional users after successfully completing one registration.
  2. The registration process should be efficient and user-friendly.
  3. Appropriate validation and error handling should be implemented.

User Story 16: Design a user-friendly sign-in interface using email and password

- Acceptance Criteria:
  1. A user-friendly sign-in interface must be designed, allowing users to sign in using their email and password.
  2. The interface should provide a smooth and intuitive sign-in experience.

User Story 17: Create http://Readme.md file for the project

- Acceptance Criteria:
  1. A README.md file for the project must be created and hosted online.
  2. The README file should provide comprehensive documentation, including project description, installation instructions, and usage guidelines.

User Story 18: Reformat code base to follow an MVC architecture

- Acceptance Criteria:
  1. The codebase must be restructured to adhere to the Model-View-Controller (MVC) architecture.
  2. Code changes should be well-documented, and any existing functionality must not be compromised during the restructuring.

User Story 19: Create backend that enables super mentor to reset passwords for any account

- Acceptance Criteria:
  1. A backend functionality must be implemented to allow super mentors to reset passwords for any user account.
  2. Proper authorization and validation should be in place.

User Story 20: Create front end that enables super mentor to reset passwords for any account

- Acceptance Criteria:
  1. A front-end interface must be created to facilitate password reset by super mentors.
  2. The interface should guide super mentors through the password reset process smoothly.
  3. User experience should be considered in the design.

User Story 21: Create backend that enables super mentor to create user accounts (super mentor, mentor, mentee), now with SQL Database

- Acceptance Criteria:
  1. The backend API must be updated to support the creation of user accounts with a SQL database.
  2. User data should be securely stored and retrieved from the SQL database.
  3. Proper error handling and validation should be in place for database operations.

User Story 22: Create backend that allows users to edit their account information, including bio, school, and interests, now using SQL database

- Acceptance Criteria:
  1. The backend API should allow users to edit their account information, including bio, school, and interests, with data stored in a SQL database.
  2. Changes to user data should be reflected in the database.
  3. Appropriate validation and data integrity checks must be implemented.

User Story 23: Create backend that allows users to add information to their account information, including bio, school, and interests, now using SQL database

- Acceptance Criteria:
  1. The backend API should support the addition of information to user accounts, including bio, school, and interests, with data stored in a SQL database.
  2. Added information should be correctly associated with the user's account.
  3. Proper validation and data handling should be implemented.

User Story 24: Create back end that enables super mentor to reset passwords for any account, now with SQL database

- Acceptance Criteria:
  1. The backend should allow super mentors to reset passwords for any user account using a SQL database.
  2. Password reset functionality should securely update the user's password in the database.
  3. Appropriate authorization checks and validation should be in place.

User Story 25: Reformat database from CSV to Relational Database to efficiently manage and access data

- Acceptance Criteria:
  1. The database should be reformatted from CSV to a relational database structure.
  2. Data migration should be successful without data loss or corruption.

User Story 26: Populate database with fictional users

- Acceptance Criteria:
  1. The database should be populated with fictional user data.
  2. The populated data should be consistent with the database schema and contain relevant user information.
  3. Data integrity should be maintained during the population process.

User Story 27: Create data for database

- Acceptance Criteria:
  1. Relevant and meaningful data should be generated and added to the database.
  2. The data should cover various scenarios and use cases to facilitate testing and development.
  3. Data should adhere to the database schema and constraints.

User Story 28: Create database using ER diagram

- Acceptance Criteria:
  1. The database should be designed and created based on the Entity-Relationship (ER) diagram.
  2. The database structure should accurately represent the relationships between entities and their attributes.

User Story 29: Set up database connection files

- Acceptance Criteria:
  1. Database connection files must be created and configured for the project.
  2. The connection should be established successfully, allowing the application to interact with the database.
  3. Proper error handling for database connections should be implemented.

User Story 30: Create front end that enables super mentor to input high-level info (email, position) and log in info (username and password) when creating user accounts, now using the SQL database

- Acceptance Criteria:
  1. A front-end interface should be developed for super mentors to input high-level information and login details when creating user accounts.
  2. Data entered in the interface should be securely transmitted to the backend and stored in the SQL database.
  3. User experience and data validation should be considered in the design.

User Story 31: Develop an Entity-Relationship Diagram for the database

- Acceptance Criteria:
  1. An Entity-Relationship Diagram (ERD) must be created to visualize the database structure.
  2. The ERD should accurately represent the relationships between entities, their attributes, and cardinalities.
  3. The ERD should be well-documented and shared with relevant team members.

User Story 32: Document the database schema

- Acceptance Criteria:
  1. The database schema must be documented, including tables, columns, data types, and relationships.
  2. Documentation should be comprehensive and provide clarity for developers and stakeholders.

User Story 33: Update backend to enable all users to sign in only using email and password

- Acceptance Criteria:
  1. The backend authentication system should be updated to allow all users to sign in using only their email and password.
  2. User credentials should be securely verified against the database.
  3. Username-based authentication should be disabled.

User Story 34: Update front end to enable all users to sign in only using email and password

- Acceptance Criteria:
  1. The front-end sign-in interface should be updated to accept email and password for all users.
  2. The updated interface should provide a seamless and secure sign-in experience.
  3. User experience and error handling should be improved.

User Story 35: Develop a login screen that maintains functionality and user experience

- Acceptance Criteria:
  1. The login screen should be updated to maintain all existing functionality and user experience while accommodating email-based sign-in.
  2. User data should be validated and authenticated as before.
  3. Users should not experience any degradation in the sign-in process.

User Story 36: Implement proper authorization checks before granting access to secure pages

- Acceptance Criteria:
  1. Authorization checks must be implemented to control access to secure pages based on user roles and permissions.
  2. Users should only be able to access pages and features for which they have appropriate authorization.
  3. Unauthorized access attempts should be blocked.

User Story 37: Develop UI side menu bar components for mentors, supermentors, and mentees

- Acceptance Criteria:
  1. UI side menu bar components must be developed for mentors, super mentors, and mentees.
  2. The menu components should provide access to relevant features and functionality based on user roles.
  3. Menu components should be responsive and user-friendly.

User Story 38: Create backend that allows supermentors and mentors to create learning roadmaps

- Acceptance Criteria:
  1. The backend API should be created to allow super mentors and mentors to create learning roadmaps.
  2. Learning roadmap data should be securely stored in the database.
  3. Proper validation and error handling should be in place.

User Story 39: Create backend that allows supermentors to delete learning pathways

- Acceptance Criteria:
  1. The backend API must support the deletion of learning pathways by super mentors.
  2. Deletion should be handled securely, and data integrity should be maintained.
  3. Proper authorization checks should be implemented.

- *User Story 40: Create backend that enables super mentors and mentors

to assign existing learning roadmaps to a mentee**

- Acceptance Criteria:
  1. The backend API should allow super mentors and mentors to assign existing learning roadmaps to a mentee.
  2. Assignment data should be accurately recorded in the database.
  3. Data validation and error handling should be implemented.

User Story 41: Continuously update the project http://Readme.md file

- Acceptance Criteria:
  1. The project's README.md file should be continuously updated with relevant project information, including changes, features, and usage guidelines.
  2. Updates should be made as changes and improvements are implemented in the project.

User Story 42: Create front end profile page that allows users to delete their own account

- Acceptance Criteria:
  1. A front-end profile page should be created, allowing users to view and delete their own accounts.
  2. The delete account feature should securely remove the user's data from the database.
  3. Proper confirmation and error handling should be in place.

User Story 43: Build the front end for the mentor/supermentor dashboard UI that shows all their assigned mentees and their progress within their assigned pathways

- Acceptance Criteria:
  1. The front-end interface for the mentor/supermentor dashboard should be developed.
  2. The dashboard should display all assigned mentees and their progress within assigned pathways.
  3. The design should be user-friendly and responsive.

User Story 44: Build the backend logic for the mentee single pathway tracker that gets info about progress within a single pathway

- Acceptance Criteria:
  1. Backend logic must be developed to track progress within a single pathway for mentees.
  2. The logic should accurately retrieve and calculate progress data.
  3. Data should be securely accessed and processed.

User Story 45: Build the backend logic for the mentor/supermentor dashboard UI that gets info about all assigned mentees and their progress within their assigned pathways

- Acceptance Criteria:
  1. Backend logic must be implemented to gather information about all assigned mentees and their progress within their pathways for the mentor/supermentor dashboard.
  2. Data retrieval should be efficient and accurate.
  3. Proper error handling should be in place.

User Story 46: Build the front end for the mentee single pathway progress dashboard UI that shows progress within single pathway

- Acceptance Criteria:
  1. The front-end interface for the mentee single pathway progress dashboard should be developed.
  2. The dashboard should display progress within a single learning pathway in an informative and user-friendly manner.

User Story 47: Build the backend logic that gets info about all assigned pathway progress for the mentee dashboard

- Acceptance Criteria:
  1. Backend logic must be developed to retrieve information about the progress of all assigned pathways for the mentee dashboard.
  2. Data should be accurately collected and provided to the front-end.

User Story 48: Build the front end for the mentee dashboard UI that shows all assigned pathways

- Acceptance Criteria:
  1. The front-end interface for the mentee dashboard should be developed to display all assigned learning pathways.
  2. The design should be user-friendly and provide easy navigation for mentees.

User Story 49: Create front end that allows supermentors and mentors to create learning roadmaps

- Acceptance Criteria:
  1. A front-end interface should be developed to allow super mentors and mentors to create learning roadmaps.
  2. The interface should guide users through the process of creating and customizing learning pathways.
  3. Data input and validation should be user-friendly.

User Story 50: Create backend that enables super mentors and mentors to update mentees' progress in pathways

- Acceptance Criteria:
  1. The backend API must support the updating of mentees' progress in learning pathways by super mentors and mentors.
  2. Changes should be securely recorded in the database.
  3. Proper authorization and data validation checks should be implemented.

User Story 51: Create backend logic that enables every user to delete their own account

- Acceptance Criteria:
  1. Backend logic should be developed to enable every user to delete their own account.
  2. The deletion process should be secure and data integrity should be maintained.
  3. Proper authentication and authorization checks should be in place.

User Story 52: Allow supermentor and mentors to revisit the 'assign' page for already assigned pathways

- Acceptance Criteria:
  1. Super mentors and mentors should have the ability to revisit the 'assign' page for learning pathways that have already been assigned to mentees.
  2. The interface should facilitate easy reassignment or updates.

User Story 53: Create front end that allows supermentors to delete learning pathways

- Acceptance Criteria:
  1. A front-end interface should be developed to allow super mentors to delete learning pathways.
  2. Deletion should be securely facilitated, and appropriate confirmation dialogs should be provided.

User Story 54: Create front end that enables super mentors and mentors to assign existing learning roadmaps to a mentee

- Acceptance Criteria:
  1. A front-end interface should be developed to allow super mentors and mentors to assign existing learning roadmaps to mentees.
  2. The interface should provide options for selecting and assigning pathways.

User Story 55: Update database to allow pathways to be soft deleted

- Acceptance Criteria:
  1. The database structure should be updated to allow for soft deletion of learning pathways.
  2. Soft-deleted pathways should be marked as inactive but retained in the database for reference.

User Story 56: Create a management dashboard for mentors

- Acceptance Criteria:
  1. A management dashboard must be created for mentors, providing access to relevant administrative functions.
  2. The dashboard should be user-friendly and responsive.

User Story 57: Create a management dashboard for super mentors

- Acceptance Criteria:
  1. A management dashboard must be created for super mentors, offering access to administrative features and controls.
  2. The dashboard should be intuitive and efficient for super mentors.

User Story 58: Develop a user profile following UI mockups

- Acceptance Criteria:
  1. User profiles must be developed based on provided UI mockups.
  2. The profiles should accurately reflect the design and functionality as per the mockups.