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

rqa5hb Recruitment Form #161

Open
wants to merge 55 commits into
base: main
Choose a base branch
from
Open

Conversation

sashco-m
Copy link

@sashco-m sashco-m commented Jan 27, 2023

Ticket: https://app.clickup.com/t/rqa5hb

This is going to contain instructions to test this whole recruitment process end to end (as of Jan 26 2023), suggest improvements, and where to do them.

SETUP

Have exective-dashboard, waterloop-cms and waterloop-website all running locally. Follow the readme's. It should be fine to have executive-dashboard and waterloop-cms on master. It is genuinely possible that your computer may not have enough RAM to run all 3 at the same time. Mine can barely. Be careful opening new chrome tabs.

Search on slack for usual setup issues, including environment variables (which are needed for both executive-dashboard and waterloop-cms.

LET'S GET STARTED

  1. Open the waterloop-cms frontend. The first step is to create a new posting for the current term. This will then appear on waterloop-website.

a) On the CMS home page, click the notepad button under current openings

cms_home

b) Click new opening

cms_openings

c) Give it a name, the correct term, and then save it

cms_new_posting

d) By default the job is set to closed. Set it to open so we can see it on waterloop-website

cms_open

  1. Open the waterloop-website frontend. Click job postings, then you should see the job you've added. If not, make sure you created it for the correct term (the current term). Click more info

mainsite_postings

a) Now we have the posting detail. Hit apply

mainsite_posting_detail

CHECKPOINT (content added in this PR)

b) Now we've reached the recruitment form. THIS is the meat and potatoes of this PR. Fill it out, and be sure to upload a pdf in the resume section. Any pdf works.

recruitment_form

c) It'll say the name of the pdf if it uploaded properly. Open the network table in chrome devtools to see what happens behind the scenes when you click submit

recruitment_form_filled

  1. Final stretch

a) We see two http requests are made. One to executive-dashboard's resume endpoint, for uploading the resume. This returns a google drive link to the resume. We also see an application call, which puts the application itself (including the resume link) inside the executive-dashboard db

recruitment_form_network

b) The payload should look like this. Sidenote: you likely have access to that resume link. If you're curious, its under the external google drive under WEB TEAM.

recruitment_form_network_payload

c) A popup is shown after a long wait. Accepting returns back to the home screen.

recruitment_success

PROBLEMS

  1. The form is formatted funky. To fix this, styling changes would have to be made in the recruitment form, src/components/RecruitmentForm/RecruitmentForm.tsx
    2.~~ The api calls after hitting submit take time. If you're curious, they happen at src/components/RecruitmentForm/hooks/recruitment-form.ts. There needs to be some kind of feedback, it could be a spinning button, the whole application form spinning, some kind of notification, anything. ~~
    a) One easy way to do this is to have an isApplying field in the redux store. We then have an action that sets this field to true after hitting apply, which then some logic on the front end displays some message. Once we receive either a success/fail, we can have an action that sets it to false. What I'm describing sounds simple, but the code has grown so confusing from having several generations of waterloop developers work on this, so it may not be simple.

IMPORTANT FILES

  1. The recruitment form itself src/components/RecruitmentForm/RecruitmentForm.tsx
  2. The reducer/actions all-in-one file src/components/RecruitmentForm/hooks/recruitment-form.ts. This file is awful. Luckily, to fix these issues you shouldn't have to touch/understand much.
  3. You might need src/pages/Recruitment/RecruitmentApplicantForm.tsx, which is the parent component of the recruitment form. Notably, it's where the onSuccess function that displays the success alert lives.

NOTES

In theory you should be able to see this application from the executive-dashboard FE. I don't have enough knowledge to test that out.

LavanSumanan and others added 30 commits November 6, 2021 19:03
…an' of github.com:waterloop/waterloop-website into CU-rt3ce6_Implement-Frontend-For-Form_Lavan-Aidan-Sumanan
@netlify
Copy link

netlify bot commented Jan 27, 2023

Deploy Preview for waterloop ready!

Name Link
🔨 Latest commit f9002dd
🔍 Latest deploy log https://app.netlify.com/sites/waterloop/deploys/63dc41ffb718860008aed111
😎 Deploy Preview https://deploy-preview-161--waterloop.netlify.app/
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify site settings.

@sashco-m
Copy link
Author

Fixed both problems mentioned in PR: updated formatting and added loading spinner

@jmawloo
Copy link
Member

jmawloo commented Feb 2, 2023

Thanks Sashco! Really appreciate your work on getting this feature to work :)

src/theme/styles.scss Outdated Show resolved Hide resolved
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

Successfully merging this pull request may close these issues.

4 participants