# Shortcomings

Type |
Dependencies |
Order | 15
Owner | Amani Rose
Section | Shortcomings
Status | Review requested

shortcomings

we don’t have secure log out or secure routing when user logs out and can return to previous page and access things (only what is available to that user type) previously unavailable

our backend is a mess and would benefit from being reorganized and cleaned up. There may be repeated functions
naming convention in the files is not consistent. file names, method names, vairable names, ways of doing routing and things of that nature have no standard procedure

we were “creative” in finding workarounds

many pages don’t adhere to the design we set up, due to the filesbeing made earlier on, wihle we were still working on figureing out functionality, befroe we had design files, before we had begun adding design to the site

many missing functionalities

some missing functionalties is ammending mentee progress or ammending mentee data by directly clicking on that user’s progress on the mentor/supermentor dashbaord rather than going to management page

allows a user to ammend their own name on their profiel page

if a mentee has no assigned pathway, then there is no way for th mentor/supermentor to know they ahve taht mentee assigned other than my goign to the assigna. pathway page and seeing the drop down menu show that mentee’s name

there’s no way for an admin to update or change another user’s informaiton (apart from a mentee’s progress or a user’s password)

a mentor/supermentor dashbaord still shows a mentee’s progress on a pathway after the pathway has been completed

missing ability to make user connections, assigned badges, the design additions for all of these new features

ddin’t do incremental work and didn’t ship incrementially - meaning that our git contributions were luimp sum of all changes, rather than incremental pushes with each completed feature/user story

this sometimes caused merge conflicts or total crashes that required hefty ammendments

main page (home page - before login page) hasnot been added

Security and User Experience:

1. Lack of Secure Logout and Routing:
   - When users log out, the application does not ensure secure routing, allowing them to return to the previous page and access content that should be restricted based on their user type.
   - This security flaw poses a risk of unauthorized access and a potential breach of user data.

Codebase and Development:
2. Backend Code Quality:

- The backend codebase exhibits signs of disorganization, with scattered functions and modules, possibly leading to code duplication.

- The lack of code cleanliness hinders maintainability and introduces complexities during development and debugging.

1. Inconsistent Naming Conventions:
   - In various parts of the codebase, including file names, method names, and variable names, there is a lack of standardized naming conventions.
   - Inconsistent naming conventions can lead to developer confusion, reduced code readability, and an increased learning curve for new team members.

2. Workarounds and Technical Debt:
   - Throughout the project, workarounds have been employed to address issues rather than implementing proper, sustainable solutions.
   - The accumulation of technical debt through these workarounds can result in future difficulties in maintaining, scaling, and extending the application.

Design and User Interface:
5. Design vs. Functionality Mismatch:

- Many pages in the application deviate from the established design due to their development preceding the availability of design files.

- These discrepancies create inconsistencies in the user interface and user experience, impacting the overall aesthetic and usability.

Functionality and User Interaction:
6. Missing Functionalities:

- The application lacks several essential features and user interactions, resulting in incomplete or underdeveloped aspects.

- Users may face limitations in achieving their goals within the application, leading to dissatisfaction.

1. Incomplete Pathway Handling:
   - The system does not adequately support mentors and supermentors in efficiently managing assigned learning pathways.
   - This deficiency disrupts workflows and may lead to delays in mentorship activities.

2. Limited Admin Capabilities:
   - Administrators have restricted abilities to update or modify user information, aside from managing a mentee's progress or password.
   - This limitation impedes administrative tasks and overall system oversight.

3. Displaying Completed Pathway Progress:
   - The mentor/supermentor dashboard continues to display a mentee's progress on a pathway even after it has been completed.
   - This discrepancy can mislead mentors and supermentors, affecting their decision-making and mentoring effectiveness.

4. Missing User Actions:
   - Certain user actions are not supported, such as amending mentee progress or data directly by clicking on a user's progress on the mentor/supermentor dashboard instead of navigating to the management page.
   - Additionally, allowing users to amend their own name on their profile page is not implemented.

5. Unassigned Mentees Visibility:
   - The absence of a mechanism to inform mentors and supermentors about unassigned mentees poses a challenge.
   - Currently, the only way to identify these mentees is by checking the assignment pathway page, causing potential operational inefficiencies.

6. Admin User Information Management:
   - Administrators lack the capability to update or change another user's information beyond a mentee's progress or password.
   - This limitation restricts administrative control and user data management.

7. Missing Features:
   - Specific features, such as user connections, assigned badges, and the associated design elements, are missing from the application.
   - These feature gaps impact the completeness and functionality of the application.

8. Lack of Incremental Work and Git Contributions:
   - The project did not follow incremental development practices, leading to git contributions delivered as a lump sum of all changes.
   - This approach caused merge conflicts, code instability, and required substantial amendments during integration.

9. Absent Main Page (Home Page):
   - The application lacks a main page (home page) before the login page, resulting in an incomplete user journey.
   - Users do not have a central hub or starting point for their interactions, potentially causing confusion.

Development Process shortcomings

- gaps in our development process that caused issues for us and may cause issues for others down the line

Architecture/Design shortcomings

- issues with our architecture or application design

Application/Usage shortcomings

- issues with the app - safety

UI/UX shortcomings

- pages that require visual upgrades

Feature shortcomings

- missing features or abilities that should be added

Certainly, let's categorize the identified shortcomings into the requested buckets:

Development Process Shortcomings:

- Lack of clear version control and branching strategies.
  - Didn’t do incremental work and didn’t ship incrementally - meaning that our git contributions were lump sum of all changes, rather than incremental pushes with each completed feature/user story.
  - This sometimes caused merge conflicts or total crashes that required hefty amendments.

- Absence of automated testing and continuous integration processes.

Architecture/Design Shortcomings:

- Absence of a well-defined system architecture.
  - Our backend is a mess and would benefit from being reorganized and cleaned up. There may be repeated functions.

- Lack of scalability considerations in the initial design.
  - Naming convention in the files is not consistent. File names, method names, variable names, ways of doing routing, and things of that nature have no standard procedure.

- We were “creative” in finding workarounds.

Application/Usage Shortcomings (Safety Concerns):

- We don’t have secure log out or secure routing when the user logs out and can return to the previous page and access things (only what is available to that user type) previously unavailable.
  - Inadequate user authentication and authorization mechanisms.
  - Lack of data encryption and security best practices.
  - Absence of session management and token expiration.
  - Poor handling of user sessions and state management.

UI/UX Shortcomings:

- Many pages don’t adhere to the design we set up, due to the files being made earlier on while we were still working on figuring out functionality, before we had design files, before we had begun adding design to the site.

Feature Shortcomings:

- Many missing functionalities and inconsistent navigation patterns.

- Limited user customization and personalization options from the user and the admin’s perspective
  - Some missing functionalities include amending mentee progress or amending mentee data by directly clicking on that user’s progress on the mentor/supermentor dashboard rather than going to the management page.
  - There’s no way for an admin to update or change another user’s information (apart from a mentee’s progress or a user’s password).
  - Allows a user to amend their own name on their profile page.

- If a mentee has no assigned pathway, then there is no way for the mentor/supermentor to know they have that mentee assigned other than by going to the assignment pathway page and seeing the drop-down menu show that mentee’s name.

- A mentor/supermentor dashboard still shows a mentee’s progress on a pathway after the pathway has been completed.

- Missing ability to make user connections, assigned badges, the design additions for all of these new features.

This categorization provides a clearer breakdown of the identified issues based on their nature and impact.

Development Process Shortcomings (Gaps in Development Process):

- Lack of Clear Version Control and Branching Strategies:
  - Our approach to version control and branching was inconsistent. This resulted in problems where git contributions were submitted as a lump sum of all changes, causing potential merge conflicts and making it difficult to track incremental progress.

- Absence of Automated Testing and Continuous Integration Processes:
  - We did not implement automated testing and continuous integration, which led to manual testing efforts.

Architecture/Design Shortcomings (Issues with Architecture/Design):

- Absence of a Well-Defined System Architecture:
  - Our application initially lacked a well-documented system architecture, causing difficulties in understanding component organization. To address this, we transitioned to an MVC architecture, improving overall structure. However, as the backend grew, maintaining a clean structure became complex due to the evolving codebase and new architectural principles.

- Lack of Standards and Conventions Considerations:
  - The absence of consistent naming conventions in our codebase, encompassing file names, method names, variable names, and routing, posed challenges in terms of project maintenance and collaboration.

- Creative Workarounds:
  - In response to technical challenges, we resorted to creative workarounds rather than addressing issues with systematic solutions. These workarounds introduced technical debt and complexity into the codebase.

Application/Usage Shortcomings (Safety Concerns):

- Inadequate User Authentication and Authorization:
  - Our application lacked secure logout and routing mechanisms. Users could return to previous pages and access content that should have been restricted after logout. This raised security concerns related to user data and unauthorized access.

- Lack of Data Security Best Practices:
  - We did not implement data encryption and security best practices, leaving user data vulnerable to potential threats. Inadequate session management and token expiration further contributed to safety issues.

UI/UX Shortcomings (Pages Requiring Visual Upgrades):

- Design-Functionality Mismatch:
  - Many pages did not align with the established design due to early development decisions made before design files were available. This resulted in inconsistencies in the user interface and user experience across the application.

Feature Shortcomings (Missing Features/Abilities):

- Missing Functionalities:
  - Several essential features and capabilities were missing from the application. These included the ability to amend mentee progress directly from the mentor/supermentor dashboard, self-amendments of user names on profile pages, and clear indicators for unassigned mentees.

- Limited User Customization:
  - Users, including administrators, had limited options for customizing their profiles or managing user data. Admins also lacked the ability to update or change other user information beyond specific fields, such as mentee progress or passwords.

- Displaying Completed Pathway Progress:
  - The application continued to display mentee progress on pathways even after they were completed, which caused confusion for mentors and supermentors.

- Missing User Connection Features:
  - The application lacked the ability to establish user connections, assign badges, and incorporate design additions for these new features.

Providing these clear explanations helps to highlight the specific issues within each category and their respective implications on the project.

Development Process Shortcomings (Gaps in Development Process):

- We lacked clear version control and branching strategies, resulting in inconsistent approaches. This led to problems where we submitted git contributions as a lump sum of all changes, causing potential merge conflicts and making it difficult to track incremental progress.

- We did not implement automated testing and continuous integration processes, relying on manual testing efforts.

Architecture/Design Shortcomings (Issues with Architecture/Design):

- Our application initially lacked a well-documented system architecture, causing difficulties in understanding component organization. To address this, we transitioned to an MVC architecture, improving overall structure. However, as the backend grew, maintaining a clean structure became complex due to the evolving codebase and new architectural principles.

- We did not consider consistent naming conventions in our codebase, encompassing file names, method names, variable names, and routing. This posed challenges in terms of project maintenance and collaboration.

- In response to technical challenges, we resorted to creative workarounds rather than addressing issues with systematic solutions. These workarounds introduced technical debt and complexity into the codebase.

Application/Usage Shortcomings:

- Our application lacks secure logout and routing mechanisms, allowing users to return to previous pages and access content that should have been restricted after logout. This raises security concerns related to user data and unauthorized access.

- We did not implement data encryption and security best practices, leaving user data vulnerable to potential threats. Inadequate session management and token expiration further contributed to safety issues.

- Many pages do not align with the established design due to early development decisions made before design files were available. This resulted in inconsistencies in the user interface and user experience across the application.

Feature Shortcomings (Missing Features/Abilities):

- Several essential features and capabilities are missing from the application. These included the ability to amend mentee progress directly from the mentor/supermentor dashboard, self-amendments of user names on profile pages, and clear indicators for unassigned mentees.

- Users, including administrators, had limited options for customizing their profiles or managing user data. Admins also lack the ability to update or change other user information beyond specific fields, such as mentee progress or passwords.

- The application continues to display mentee progress on pathways even after they are completed, causing confusion for mentors and supermentors.

- The application lacks the ability to establish user connections, assign badges, and incorporate design additions for these new features.