-
Notifications
You must be signed in to change notification settings - Fork 0
Use Cases
Use cases drive the interactions of any application, and inform the DB schema. So we need to first describe how people will want to use the application before we can determine what it's data and UI look like.
A candidate (user) can sign up and begin using the tool. This means providing an email and password, and optionally resources that will be helpful for the process (links to profiles on hiring sites is a good example)
A candidate can login and logout as they see fit.
This is more than just the company name. Additional information includes:
- description of the company based on what the user knows.
- links to interesting things about the company (their official website, news articles, etc.)
- how the candidate feels about the company (good fit? not likely?)
Of course, things about the company and the candidate's relation to it may change. They can update information about it as the need arises.
When the job hunt hits an unfortunate end with a company (failed interview, decided not to pursue, etc.), the user can archive the company and it's related info. This means they can still see their interactions, but won't see it in their active progress view.
If a company has no established progress yet, the user can delete it.
A candidate never talks to a 'company', they talk to a person. The person is usually working for that company, but not always; they may be a recruiter working on its behalf. A user can add a contact associated with a company, which includes:
- name
- phone
- relation type (recruiter, hiring manager, etc.)
- last contact datetime
Like a company, details can change over time. The user may want to update anything listed above.
An event represents any concrete action taken by the candidate or a company/contact that moves job process along. For instance, initiating contact, doing an informational call, scheduling an interview, etc. Events include:
- date and time
- type of event
- link (if applicable)
- status
It's especially important that events can be changed since they may need to be rescheduled, skipped, canceled, etc.
For any given company, there is a set of events that occur that lead to a final conclusion of hire or no hire (for a variety of reasons). A progress is how far along a candidate is in that process. This is important because it tracks:
- history of events
- who's supposed to perform the next action
- how close one is to being hired
This isn't an explicit action, but is a logical one that occurs when someone creates a new event.
When progress hits a terminal state, the progress and associate events are archived.