Summary

GitHub Issue

Wireframes

Applicants want a view for seeing their application status. This page should provide improved context for the step that they’re currently on. They should also be able to navigate backwards to view information for past steps in the process.

Note: Although present in the wireframes, this ticket won’t deal with the aspect of allowing users to submit information on certain stages. This is just about allowing applicants to view and navigate through the different states for their application. Submitting the code challenge will be handled in #411

Proposals

REST Design

There are two potential ways to conceptualize the routing and action for this new view

Proposal 1: MenteeApplicationStatus#index

Applicants will visit an index page for their application statuses. Query params in the URL will determine which specific status is displayed to the user. So for example this path: /user_mentee_application/2/statuses?status=code_challenge Would point the applicant to the code challenge status for the application with id=2 (assuming they own that application of course)

Pros

  1. Potentially very snappy UI. All states could be loaded in memory and then as the user navigates to different states, the content on the page is just updated to reflect which specific state the applicant is currently viewing. There’s also always going to be a hard-cap on the number of stages that could be in a single application, and this is unlikely to balloon out of control. So loading all the stages into memory is pretty low risk.

Cons

  1. Feels less RESTful to me? The viewer is directly viewing a single resource at a time.

Proposal 2: MenteeApplicationStatus#show

Applicants will visit a show page for their application statuses. Going this route probably means adding friendly_id and a slug field for the application statuses. So the user could visit: /user_mentee_application/2/status/code_challenge And the applicant would be pointed to the code challenge status page for that application.

The new slug column would need a multi-column unique index with the user_mentee_application_id column. This will allow the same statuses to appear for multiple applications, but any status can only occur once for a single application.

Pros

  1. Like I’ve indicated above, to me a show action maps better with what’s going on. Willing to hear any disagreements regarding that though

Cons