CSC473 Project (Under Construction)
JobFirst
By: Gong Qi Chen (product manager) Kai Hang Chen (scrum master) Jie Lan (developer) Siddharth Rajan (developer) Alan Lau (developer)
Background:
JobFirst is employment-related search website that makes a connection between employer and skilled new immigrants who can speak Chinese and tries to find a job but couldn't do so due to language and cultural barriers. The interface will be in bilingual(English & Mandarin), allowing the user easier to use. On the website, a credential converter can be provided that helps customers understand what their degree means in the new country.
Tools Used:
- Gatsby
- AWS cognito
- AWS appsync
Refer here for our website
https://master.d311enjx0cy8vf.amplifyapp.com/
Refer here for our developer documentation
https://kaihchen1230.github.io/csc47300Project/
How to get started:
- clone the repo
git clone https://github.com/Kaihchen1230/csc47300Project.git - install all the dependencies
npm install - setup backend
amplify init - push the backend to the cloud
ampify push - run the app
gatsby develop
For the developers:
- READ FIRST
Fresh start: (RECOMMENDED)
- Delete your local
- Delete your repo
- Fork from Kai
- On the github repo, set dev as the default branch
git clone [your own repo link]git branchyou should be in dev branchnpm installinstall the dependencies- (optional)
amplify configurecreate a IAM role for this project SAVE THE ACCESS ID AND ACCESS KEY amplify initinitialize the amplify backend USE A DIFFERENT ENV You can name it as younameenv ex: alanenv USE YOUR OWN PROFILE You can find more information here about amplify command. If you have created too many profiles you can also find the file where your profiles are being recorded and then delete 'em.amplify pushso your backend will be in the cloud- Begin coding...
Adding new Amplify service:
- In this example I will be adding an API
git pull upstream whateverbranchweuseGet the latest update from upstream. We probably use the newFrontend branch. So all of our pull requeast will go to newFrontend.npm installrun this after every pull from the upstreamamplify initto sync with the backend from upstream because someone else might add something to the backend already. USE THE EXISTING ENV FROM PREV SECTION STEP 10 So it should be yournameenvamplify pushnow your backend should be the same front upstream and when you rungatsby developit should be workingamplify add apito add the service that you want to add. In this case, it's apiamplify pushSet it up according your needs:- define the schema
- write custom graphql
- etc...
- test it out to see if your backend is working
git pushPush it to your repo to make pull request.- Create the pull request.
- If encounter
Stack already on the cloudissue, please follow this link to resolve it: https://github.com/aws-amplify/amplify-cli/issues/906
Testing:
npm test or npm test -- -- watch
Developer Document:
npm run doc All docs are inside the docs folder
Refer here for how to write jsdoc
File Structure
.
├── amplify
│ ├── #current-cloud-backend
│ │ ├── api
│ │ │ └── csc47300project
│ │ │ ├── build
│ │ │ │ ├── resolvers
│ │ │ │ └── stacks
│ │ │ └── stacks
│ │ ├── auth
│ │ │ └── cognitoed11de21
│ │ └── storage
│ │ └── csc473storage
│ └── backend
│ ├── api
│ │ └── csc47300project
│ │ ├── build
│ │ │ ├── resolvers
│ │ │ └── stacks
│ │ └── stacks
│ ├── auth
│ │ └── cognitoed11de21
│ ├── awscloudformation
│ └── storage
│ └── csc473storage
├── docs
│ ├── fonts
│ ├── scripts
│ │ └── prettify
│ └── styles
├── mocks
├── node_modules [1620 entries exceeds filelimit, not opening dir]
├── public
│ ├── businessImages
│ └── static
│ └── d [21 entries exceeds filelimit, not opening dir]
├── src
│ ├── components
│ │ ├── Home
│ │ ├── authentication
│ │ ├── business_profile
│ │ │ └── test
│ │ │ └── __snapshots__
│ │ ├── dictionary
│ │ ├── form
│ │ ├── jobList
│ │ ├── job_description
│ │ ├── talent_list
│ │ └── user_profile
│ ├── customGraphql
│ ├── graphql
│ ├── pages
│ ├── services
│ ├── style
│ └── test
│ ├── integrationTest
│ │ └── __snapshots__
│ ├── jobDescriptionUnitTest
│ ├── jobListUnitTest
│ ├── systemTest
│ └── userProfileUnitTest
└── static
└── businessImages
62 directories
Above is all the directories in our root folder:
- amplify is where all of our backend files located
- docs is where all the generated html documents located
- src is where mainly our code located
- static is where all the static files like images located
src
├── components
│ ├── Home
│ ├── authentication
│ ├── business_profile
│ │ └── test
│ │ └── __snapshots__
│ ├── dictionary
│ ├── form
│ ├── jobList
│ ├── job_description
│ ├── talent_list
│ └── user_profile
├── customGraphql
├── graphql
├── pages
├── services
├── style
└── test
├── integrationTest
│ └── __snapshots__
├── jobDescriptionUnitTest
├── jobListUnitTest
├── systemTest
└── userProfileUnitTest
24 directories
Above is all the directories in our src folder:
- components is where all the components located, categorized by the page where they belong
- customGraphql is where all the custom Graphql query located
- graphql is where all the generated query located
- pages contain all the codes for all the pages of our application
- services contain some functions for authentication and translation feaature