Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ROADMAP #18

Closed
vcfxb opened this issue Nov 10, 2020 · 1 comment
Closed

ROADMAP #18

vcfxb opened this issue Nov 10, 2020 · 1 comment
Assignees
Milestone

Comments

@vcfxb
Copy link
Member

vcfxb commented Nov 10, 2020

Items marked with (?) are not concrete requirements or do not have established requirements for design and implementation.

EDIT (Feb 9 2021): With the new back end, a lot of these requirements have changed and this roadmap is less accurate. You may still use this a rough guide, but it does not quite match the actual implementation requirements.

Specific Features

  • User Settings (User Settings #16)
    • Change settings form
    • Change password form
      • Poor password response
      • Incorrect current password response
      • New password and confirm new password do not match response
      • (Possible bug) Should changing password logout user everywhere else?
        • (Possible fix) change how user identity is stored in the session cookies / identity token.
      • Success response
      • Email Adding, Verification and Visibility
    • Link accounts (OAuth2 account linking / Integration #5)
      • GitHub
      • Discord
      • Mattermost (?)
      • RPI CAS
      • Link account process
        • Redirect to OAuth page
        • User does authentication
        • OAuth redirects back to telescope
        • Handle OAuth response
          • Perhaps use an OAuth library for this or something
          • Store auth token in database with user record via PostgREST API
          • Success response
          • Failure response
      • Unlink account proccess
        • Remove OAuth token from database
        • Success response
        • Failure response
    • Delete account (User Deletion #15)
      • Should be done in database transaction to avoid partial results.
      • Fail if sysadmin (The sysadmin account should not be removed)
      • Remove from groups
      • Orphan any projects as PM
      • remove all attendance records
      • remove all emails
      • remove user record
      • success response
      • failure response
    • Active / Inactive state (?)
      • Feature/implementation still under consideration
  • User pages / profiles (User Pages / Profiles #11)
    • Display name
    • Display profile picture
    • Display bio as rendered markdown
    • Display emails
    • Display groups
    • Display highest permission/role
      • mentor
      • coordinator
      • faculty
      • member (default)
    • display attendance to privileged users
    • display 'user settings' button to privileged users
    • display linked accounts
    • display projects
      • Owned projects as PM
      • others as member
      • group by activity (?)
    • display user blog (?)
      • Should this be on a profile or different page?
      • Design under consideration
  • Blog system (Blog system #7) (?)
    • Should this be a 1.0 feature or 1.1?
    • Feature may be scrapped entirely in favour of Submitty, Discord, and other communication media.
    • Feature still under consideration.
    • Design and requirements under consideration. Subject to change.
    • Personal / User / Developer blogs (could be used for status updates)
    • Project blogs (could be used for project proposals etc.)
    • Group blogs (could be used for communicating with small groups)
    • RCOS Achievements / Site blog
      • Could be implemented as special case statically generated blog.
    • Blog subscriptions (?)
      • Not 1.0.0.
      • Subscribe to blog.
      • Unsubscribe from blog.
      • Blog feed page.
    • Blog Comments (?)
      • Not 1.0.0
      • CRUD operations on comment on blog post
  • Users / Developers page
    • Display list of users
    • Pagination
    • Search feature
    • Toggle active/inactive (?)
  • Projects page
    • Display list of projects
    • Pagination
    • Search feature
    • Toggle active/inactive
  • Project Pages (Project Pages #12)
    • Display PM
    • Display Members
    • Display link to repo
    • Display description as rendered markdown
    • For logged in users
      • Join/Leave button
    • For privileged users
      • Project settings button
      • Transfer ownership button
      • Toggle active/inactive
      • Delete project
    • Multiple PMs (?)
    • Display project blog (?)
  • API and Playground (API Endpoints #13)
    • Not 1.0.0
    • Endpoints and implementation subject to change.
  • Attendance system (Attendance System #6)
    • Methods / Preferences
      • [offsite] Submitty phrase
        • allow users to display submitty phrase using telescope
      • [offsite] Venue QR Code
      • [offsite, legacy] Observatory code
      • Telescope Phrase
      • Telescope Link
        • Generate QR code (that redirects to link)
      • Randomly generated code (like observatory)
      • Manually verify attendance on a per person basis
      • Toggle randomly requiring verification.
      • Set expiration time
        • default 1 hour (?)
          • subject to change
      • Live vs asynchronous attendance preferences (?)
    • Privileged user creates attendance event on group.
      • Specify methods acceptable
    • Member checks in using one of the available methods
    • Manual verification required response
    • Success response
    • Failure response
  • Groups system (Role / Group System #8)
    • Privileged user CRUD operations on groups
  • Calendar (Calendar #17)
    • Link the google spreadsheet.
    • Native calendar
      • Not 1.0.0
      • Design and implementation under consideration. Subject to change.
      • Calendar page
      • CRUD operations on the calendar
      • Possible automatic integration with attendance system.
  • On site diagnostics and server log for sysadmin (?)
    • Not 1.0.0.
  • Submissions system for gradeables (like status updates) (?)
    • Not 1.0.0.

More general goals/considerations

  • Page responsiveness/interactivity
    • Currently everything is verified and rendered server side. This has worked so far but may present issues long term. Currently we are not using any frontend frameworks beyond handlebars (for templating) and bootstrap (for styling). It will likely be useful to add a framework or put in a significant amount of work at some point for client side rendering and interactivity.
    • It would take more effort, but might be useful at some point, especially depending on the eventual scale of this project to separate the frontend and backend further.
  • Change how sessions are handled so that changing a password invalidates other user sessions.
  • Add testing of some kind to help maintain the codebase.
@vcfxb vcfxb added this to the MVP / v1.0.0 milestone Nov 10, 2020
@vcfxb vcfxb self-assigned this Nov 10, 2020
@vcfxb vcfxb pinned this issue Nov 10, 2020
@vcfxb
Copy link
Member Author

vcfxb commented Mar 9, 2021

With the major rework of the back-end complete, this roadmap is now inaccurate.

@vcfxb vcfxb closed this as completed Mar 9, 2021
@vcfxb vcfxb unpinned this issue Mar 9, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant