Skip to content

MVP Feature List

Scott A. Smith edited this page Nov 29, 2020 · 8 revisions

1. Hosting on Heroku

2. Users

  • Sign up, sign in, log out
    • Unique username
    • Unique email
    • Non-unique Go-by names
    • A profile pic (that should be an actual picture of oneself; for now, is optional using URL; BONUS: mandatory with upload pic)
    • Gender (users may only be comfortable with mentoring from certain genders in a topical area)
    • A description that contains fields for "As Mentor" and "As Mentee" (a person is not required to be both, the default of each is "not applicable," but at least one needs filled out)
    • An "is public" flag on whether a Mentor or Mentee is available for public connections.
  • Demo guest login to try the site out
  • Only logged in users can Connect, Discuss, and Make/Achieve Steps toward Goals
  • Users have "roles" based on Connections to other users, which is one of three states:
    1. No connection (can only view other users who have put themselves on the 'Available to be a Mentor' listing, or those seeking mentoring on the 'Want a Mentor' listing)
    2. As a Mentor, can privately discuss with the Mentee, create steps and goals for the Mentee.
    3. As a Mentee, can privately discuss with the Mentor, mark off achieving of steps (which go to complete goals)
  • Views Needed
    • Splash for non-logged in
    • Signup
    • Login
    • Logout confirmation
    • Delete account confirmation

3. Connections

  • A Connection is the establishing of a Mentor/Mentee relationship between two users. It contains:
    • The id's of the two users
    • A status (either "pending" upon invite/request, "established" on acceptance or "rejected" if rejected; BONUS: make a "stale" status that acts as a middle ground for severing previously established connections)
  • BONUS: A Mentor can send a timed invite (expiration period) to any person on the 'Want a Mentor', if the Mentee accepts, a Connection is established.
  • BONUS: A Mentee can send a timed request (expiration period) to any person on the 'Available to be a Mentor', if the Mentor accepts, a Connection is established.
  • Views Needed
    • A list of users publicly 'Available to be a Mentor'
    • A list of users publicly who 'Want a Mentor'
    • A 'Pending' view to discuss/confirm establishing a connection after inviting or being requested
    • A 'Discussions' view for established connections to house the discussions and have a listing and status of goals

4. Discussions

  • A Discussion is a private "chat" stream between two users. It contains:
    • A title
    • A series of non-editable postings by each user that only they can view
      • With date/time stamp
      • User that posted
  • A Discussion is automatically associated with a pending Connection invite/request so that the two users can determine if a Connection should be made; if a connection is established, then that Discussion remains, otherwise it is removed when the invite/request is rejected.
  • Any number of Discussions can be titled and attached to the 'Discussions' between Mentor/Mentee.
  • Views Needed
    • A container to house a specific discussion stream, shown in either the 'Pending' room or the 'Discussions'
    • A navigational listing of discussions within a connection for the 'Discussions'

5. BONUS: Steps and Goals

  • Steps are simply a task to complete, created by a Mentor (usually in discussion with the Mentee), that contains:
    • The instructions for the step
    • A checkbox only available for the Mentee to mark as completed
    • A second checkbox only available after the Mentee has checked as complete for the Mentor to verify it is complete
  • Goals are "wrappers" of an ordered list of Steps, that track a "percent" complete of the Steps within it.
  • Views Needed
    • A container to house a specific goal view, shown in the 'Meeting Room'
    • A navigational listing of goals within a connection for the 'Meeting Room'

6. Misc

  • About link/page
  • Favicon
  • Error free

7. Production README

  • Brief explanation of what the app is and does
  • Technologies used
  • Styling
  • Link to live site
  • Link to Wiki docs
  • Discussion of at least two features that show off technical abilities
  • Discussion of both challenges faced and the way the those were solved
  • Code snippets to highlight the best code