-
Notifications
You must be signed in to change notification settings - Fork 0
Requirements
Ebubekir Erden edited this page May 13, 2026
·
30 revisions
- Mentorship Session: A meeting for skill information flow between a mentor and a mentee at a determined time.
- Mentorship: A relationship where one user (mentor) provides guidance/experience to another user (mentee) within a defined skill/topic area.
- Mentor: A registered user who offers mentorship in one or more skills/topics.
- Mentee: A registered user who requests mentorship in one or more skills/topics.
- Skill/Topic: A category used to describe mentorship areas (e.g., coding, archery, interview prep). Skills are not verified by the system.
- Match: A connection between a mentor and mentee established through the platform.
-
Feedback: An evaluation provided by
mentor andmentee after a mentorship interaction. - Report: A user-submitted complaint about inappropriate or problematic communication or behavior.
- Guest: A non-logged-in user who can browse/search mentors but cannot communicate.
- User: A registered, authenticated account that can use mentorship and messaging features.
- Admin: A privileged account that can manage users and handle reports, but cannot read private messages by default.
- Notification: A system message delivered to users (e.g., email/in-app) about relevant events.
- 1.1.1.1 There shall be 3 types of users: guests, users, and admins.
- 1.1.1.1.1 Guests shall not be able to initiate communication (e.g., messages) with registered users.
- 1.1.1.1.2 Guests shall be able to register as a user account.
- 1.1.1.2.1 Users shall be able to authenticate using an email and password.
- 1.1.1.2.2 A user shall have only one role (Mentor or Mentee) per account. Users wishing to perform both roles must register with separate email addresses.
- 1.1.1.2.3 Users shall be able to have multiple mentorship relationships concurrently.
- 1.1.1.3.1 Admins shall be able to manage user accounts (e.g., suspend/ban).
- 1.1.1.3.2 Admins shall be able to review and process user reports.
- 1.1.1.3.3 Admins shall not be able to read private user-to-user messages by default.
- 1.1.2.1 Users shall be able to sign up by providing an email address and a password.
- 1.1.2.2 Email addresses shall be unique across all accounts.
- 1.1.2.3 User passwords shall meet minimum safety criteria.
- 1.1.2.4 Users shall be able to log in and log out of the system.
- 1.1.2.5 The system shall support user authentication via third-party OAuth providers (e.g., Google,
Apple,Facebook) in addition to email and password. - 1.1.2.6 The system shall assign each registered user a unique username in addition to a unique email address.
- 1.1.2.7 Users shall be able to change their system-assigned default usernames during onboarding, provided the requested username is unique and satisfies the platform format rules.
- 1.1.2.8 The system shall support password-reset workflows using time-limited reset tokens.
- 1.1.2.9 The system shall support email-verification workflows using time-limited verification tokens.
- 1.1.2.10 The system shall allow users to request a new email-verification message when their email address is not yet verified.
- 1.1.2.11 The system shall prevent banned users from obtaining new authenticated sessions through token refresh.
- 1.1.3.1 Users shall have profile pages.
- 1.1.3.2 Users shall be able to provide profile information including a description/about section.
- 1.1.3.3 The system
shallshould supportprofile fields with visibility settings (public vs. hidden/optional)implemented profile privacy controls, including whether a user's full name or initials are displayed publicly and whether the user's precise location is shared. - 1.1.3.4 Guests shall be able to view only the public parts of user profiles.
- 1.1.3.5 Users shall be able to edit their profile information.
- 1.1.3.6 User profiles should include a picture field.
- 1.1.3.7 The system shall allow users to choose to display only their initials publicly, revealing their full name only to matched users.
- 1.1.3.8 Users shall be able to upload a profile picture file.
- 1.1.3.9 Users should be able to upload profile audio and profile video introduction files.
- 1.1.3.10 Users should be able to provide external professional-link fields such as a LinkedIn URL.
- 1.1.3.11 The system shall support username-based public profile URLs.
- 1.1.3.12 The system should allow users to choose whether their precise location is shared or privacy-masked in discovery results.
- 1.1.4.1 The system shall support many-to-many mentorship relationships (a user may have multiple mentors
andor multiple mentees according to their app usage mode). 1.1.4.2 The system shall allow mutual mentorship between two users (a user may mentor another user in one skill while being mentored by the same user in another skill).- 1.1.4.3 The system shall support mentorship topics/skills as metadata for matching and discovery.
- 1.1.4.4 The system shall allow
usersmentees to send mentorship requests to mentors. - 1.1.4.5 The system shall allow mentors to accept or reject received mentorship requests.
1.1.4.6 The system shall allow mentors to create specific mentorship "packages" or listings, detailing distinct academic/skill levels and custom cover photos.- 1.1.4.7 The system shall allow mentees to include a text-based introductory note (cover letter) when submitting a mentorship request, but shall accept submissions where this field is left empty (an empty string).
- 1.1.4.8 The system shall restrict mentees to having only one active or pending mentorship request per mentor at any given time to prevent spam.
- 1.1.5.1 Users shall be able to exchange messages with other users.
- 1.1.5.2 Messages shall be private between the communicating users.
- 1.1.5.3 The system shall provide a mechanism for users to report problematic communication.
- 1.1.5.4 The system shall allow users to share files (e.g., PDFs, images, text, and audio) within the messaging interface and display these files directly within the message history.
- 1.1.5.5 The system
shallshould support Markdown formatting for user messages and simple note-taking areas. - 1.1.5.6 The system should support message read-receipt states such as sent, delivered, and read.
- 1.1.6.1 The system shall allow
mentors andmentees to provide feedback toeach othermentors after an interaction. - 1.1.6.2 Feedback shall be associated with the relevant mentorship relationship.
- 1.1.6.3 The system shall update and display a mentor's average public rating only after receiving a defined threshold of new feedback entries (e.g., every 5 reviews) to preserve user anonymity.
- 1.1.6.4 Feedback shall be anonymized.
- 1.1.7.1 The system shall provide a notification mechanism to inform users about relevant events.
- 1.1.7.2 Notifications shall be delivered only to users directly affected by the triggering event.
- 1.1.7.3 Following events shall create a notification for the Mentor: Receiving a new mentorship request, a Mentee booking a meeting, a Mentee canceling a meeting, a Mentee rescheduling a meeting, a match with a Mentee being deactivated, receiving new feedback, workshop cancellation, workshop rescheduling, and relevant community-tag events.
- 1.1.7.4 Following events shall create a notification for the Mentee: Rejection of a mentorship request, acceptance of a mentorship request, a Mentor cancelling a meeting, a match with a Mentor being deactivated, and relevant workshop or community-tag events directly affecting the Mentee.
- 1.1.7.5 Following events shall create a notification for all affected users: New message received and other directly relevant personal account events.
- 1.1.7.6 Following events shall create a notification for Admins: New report received.
- 1.1.7.7 Users shall be able to mark individual notifications as read.
- 1.1.7.8 Users should be able to mark all notifications as read in bulk.
- 1.1.7.9 The system should support push-notification token registration for supported client platforms.
- 1.1.8.1
UsersMentors shall be able to create and manage availability schedules. - 1.1.8.2 Users shall be able to view their upcoming mentorship sessions in the form of a calendar.
- 1.1.8.3
UsersMentees shall be able to reschedule their upcoming mentorship sessions from the calendar. - 1.1.8.4
UsersAuthorized mentorship participants shall be able to cancel their upcoming mentorship sessions from the calendar. 1.1.8.5 Users should be able to open the mentor's profile page from the classes shown on the calendar.1.1.8.6 The system should integrate with external calendar services (e.g., Google Calendar) to sync availability and appointments.- 1.1.8.7 The system shall support scheduling for
bothone-time meetingsand recurring mentorship sessions. - 1.1.8.8 The system shall represent mentorship meetings as explicit session records with statuses including scheduled, rescheduled, canceled, and completed.
- 1.1.8.9 The system shall record which participant canceled a session and preserve cancellation metadata.
- 1.1.9.1 The system should allow mentors to create and schedule community-scoped collective training sessions (workshops).
- 1.1.9.2 The system should allow mentors to define
minimum andmaximum participant thresholds for workshops. - 1.1.9.3 The system should allow mentees to
request group attendance (e.g., bringing friends) for a session, subject to mentor approvaljoin and leave workshops individually. - 1.1.9.4 Workshop authors shall be able to edit and cancel their workshops.
- 1.1.9.5 Mentors should be able to see their hosted workshops on their profiles.
- 1.1.10.1 The system shall allow authenticated users to retrieve their current account context (e.g., id, email, role/mode flags).
1.1.10.2 The system shall allow users to set their active usage mode preference (mentor, mentee, or both) for UI personalization.
- 1.1.11.1 The system shall prevent users from sending mentorship requests to themselves.
- 1.1.11.2 The system shall support a clear request lifecycle with status transitions (at minimum: pending, accepted, rejected).
- 1.1.11.3 When a mentor accepts a mentorship request tied to a specific slot, the system shall mark that slot as booked.
- 1.1.11.4 When a mentorship request is accepted, the system shall create a corresponding match record linking mentor and mentee.
- 1.1.11.5 When a mentorship request is rejected, the system shall not create a match.
- 1.1.11.6 The system shall allow mentors or mentees to deactivate an existing mentorship match.
- 1.1.12.1 The system shall reject availability slots where end time is earlier than or equal to start time.
- 1.1.12.2 The system shall prevent overlapping availability slots for the same mentor.
- 1.1.12.3 The system shall not allow booking of an already booked slot.
- 1.1.12.4 The system shall allow cancellation of booked slots only by authorized users (e.g., booked mentee and/or slot owner).
- 1.1.12.5 The system shall preserve booking metadata (e.g., who booked and when booked) for booked slots.
- 1.1.13.1 The system shall provide clear success and failure notifications (e.g., Toast messages or alerts) for all key actions, such as sending mentorship requests, profile updates, or form errors.
- 1.1.13.2 The system shall enforce stricter validation on
all forms to prevent the use of special characters in name fields and numeric-only namesusername fields to prevent invalid characters and conflicting usernames.
- 1.1.14.1 The system shall provide
a "Time Tunnel" interface for matches to visualize their mentorship history.a shared mentorship journey interface for matches to visualize their mentorship history. - 1.1.14.2
The Time Tunnel shall display specific data points including session dates, major milestones (e.g., "Learned Python basics," "Hired at Tech Corp"), and human-dimension encounters (e.g., "Met for coffee").The mentorship journey interface should display session lifecycle events, major milestones, and selected human-dimension encounters contributed by match participants. - 1.1.14.3 The system shall provide a shared mentorship journey feed for each active or historical match.
- 1.1.14.4 Match participants shall be able to create, edit, and delete manual entries in the shared journey feed.
- 1.1.14.5 Manual entries should support visibility control for whether they are also shown on the author’s profile.
- 1.1.15.1 The system shall issue
notifications orwarnings toMenteesMentors if they exceed a reasonable number of active mentorships, though no hard limit will be enforced. - 1.1.15.2 The system shall rely on a natural balancing mechanism where Mentor ratings and feedback reflect their capacity to handle multiple mentees.
- 1.2.1.1 The system shall allow searching mentors by skill/topic.
- 1.2.1.2 The system shall allow viewing mentor profiles as search results.
- 1.2.1.3 The system shall allow guests to search and view mentors without authentication.
- 1.2.1.4 The system shall allow filtering the mentors by criteria.
1.2.1.5 The system should allow users to view mentor listings on an interactive map interface.- 1.2.1.6 The system should allow users to filter mentors by geographical distance or radius.
- 1.2.1.7 The system shall feature dynamic UI lists to improve discovery, such as "Recently Added
ListingsMentors" and "Popular Mentors". 1.2.1.8 The system shall treat "Groups" or "Campuses" as public tags to facilitate discovery and real-world encounters (e.g., workshops) rather than strictly isolated silos.- 1.2.1.9 The system shall support the creation of "virtual communities" to bridge geographical gaps between users with similar interests.
- 1.2.1.10 The system should expose mentor overload indicators when a mentor reaches a configurable active-match threshold.
- 1.2.2.1 The system shall provide admins with a report review interface.
- 1.2.2.2 The system shall not provide admins direct access to read user messages unless required by a report workflow.
- 1.2.3.1 The system
shallshould include community-basedforumdiscussion features. - 1.2.3.2
The forum shallCommunity discussion areas should support reading content by guests and posting by users. - 1.2.3.3 The system should provide public interest-based communities organized by community tags.
- 1.2.3.4 Authenticated users shall be able to create, join, and leave community tags.
- 1.2.3.5 Guests shall be able to browse public community information and public community content.
- 1.2.3.6 Authenticated users shall be able to publish community posts.
- 1.2.3.7 Authenticated users shall be able to publish profile posts visible on their profile pages.
- 1.2.3.8 Community and profile posts shall support optional media attachments.
- 1.2.3.9 Community posts should support tagging eligible users by username.
- 1.2.3.10 Authors shall be able to choose whether certain community content is also shown on their public profile.
- 1.2.4.1 The system shall provide a web application interface.
- 1.2.4.2 The system shall provide a mobile application interface.
1.2.5.1 The system should utilize a mapping API (e.g., Google Maps API, OpenStreetMap, or Mapbox) to render location-based mentor discovery.
- 1.2.6.1 The system shall issue both access and refresh tokens upon successful authentication.
- 1.2.6.2 The system shall allow users to refresh expired access tokens using a valid refresh token.
- 1.2.6.3 The system shall allow admins to view a manageable list of user accounts for moderation workflows.
- 1.2.6.4 The system shall support account-level moderation actions such as banning/suspending users.
- 1.2.6.5 The system shall prevent banned/suspended users from continuing normal platform interactions according to policy.
- 1.2.7.1 The system shall provide OpenAPI-compatible API documentation for backend endpoints.
- 1.2.7.2 The system shall enforce authorization and ownership checks on protected API endpoints.
- 2.1.1 The system shall not include monetization features.
- 2.1.2 The system shall not include skill verification mechanisms (e.g., certification checks).
- 2.1.3 All third-party libraries used in the project
shallshould be open-source.
- 2.2.1 Private messages shall not be publicly visible.
2.2.2 The system shall allow users to control the visibility of optional profile fields.- 2.2.3 The system shall allow users to control
the visibility of their profile pageimplemented profile privacy settings, including name-display privacy and precise-location sharing.
- 2.3.1 User passwords shall be stored as hashed in the database.
- 2.3.2 The system shall ensure that one email corresponds to one account.
- 2.4.1 The system
shallshould comply with the WCAG 2.1 AA accessibility standards.
- 2.5.1 Critical lifecycle operations (e.g., request acceptance and slot booking) shall be executed atomically to avoid inconsistent states.
- 2.5.2 Core entities (e.g., mentorship requests, matches, slots, reports) shall include auditable timestamps.
- 2.5.3 The system shall enforce data integrity constraints to prevent duplicate or conflicting lifecycle records.
Links: Home | Main Repository
Team Members
- Software Requirements Specification (SRS)
- Requirement Elicitation Questions
- Scenarios: Mentee New Register
- Scenarios: Mentee Already Registered
- Scenarios: Mentor Already Registered
- Use Case Diagram (Initial) - 1
- Use Case Diagram (Initial) - 2
- Use Case Diagram (Initial) - 3
- Use Case Diagram (Final)
- Class Diagram
- Sequence Diagrams
- Final Milestone Deliverables
- Final Project Review
- Final Progress Based on Teamwork
- Final Individual Contributions
- Final Demo Plan
- MVP Deliverables
- MVP Plan
- MVP Demo Plan
- MVP Demo Backup
- MVP Milestone Review
- MVP Feedback Report
- MVP Individual Contributions
- Project Plan
- Communication Plan
- Test Plan & Coverage
- Acceptance Testing Strategy
- Acceptance Tests Checklist
- Last Week Checklist
- Responsibility Assignment Matrix (RAM)
- Use of Standards
- Project Standards & Workflow
- Project Retrospective
- API Documentation
- Knowledge Base