Jobs board website for NEAR project powered by GitHub issues
Stack:
- Node.js / Meteor.js
- MongoDB
- Jade / Blaze
- SASS
- PWA
- Repositories:
- Data entities:
- Candidate (job seeker's page) - GitHub issue from
profilesrepository withcandidatelabel - Company/Project - GitHub issue from
profilesrepository withcompanylabel - Job posts - GitHub issue from
jobsrepository withjoblabel - Job response — GitHub issue' comment under issue at
jobsrepository withjoblabel - Job offer — GitHub issue' comment under issue at
profilesrepository withcandidatelabel
- Candidate (job seeker's page) - GitHub issue from
- Tags/Labels
candidatecompanyjob- Prefixed with
type:are job type labels, e.g.type:full-time - Prefixed with
category:are category type labels, e.g.category:evangelist - Prefixed with
skill:are skills type labels, e.g.skill:javascript
- Landing page
- Search (fully featured text search)
- Search through job posts
- Search through candidates
- Search through companies/projects
- Latest jobs list
- Search (fully featured text search)
- Search results page
- Search field
- Filter options
- List of search results
- Create new account/sign up
- Login via GitHub
- Select account type
['candidate', 'company']
- Job post page
- Description
- Link: Apply to job
- Link: Open company/project page
- Tags
- Type
- Category
- Required Skills
- Apply to a job page/form
- Post a job page/form
- Projects list page
- List of companies/projects with title, short description, and link
- Pagination
- Project/Company page
- Description
- List of open jobs posted under this project/company
- My profile page (Company/Project)
- Company/Project description
- Add/Update company/project description
- Link to "my" jobs page (search page with filter by creator)
- My profile page (Candidate)
- Candidate description
- Add/Update candidate description
- List of applied jobs
- Post a job
a. Post an issue via Near
jobsrepository. It would get synced to the website b. Post a new job via the website form. It would get synced to GitHub issues - Post candidate/CV
a. Post an issue via Near
profilesrepository following "issue template," it would get synced to the website b. Fill candidate form via the website. It would get synced to GitHub issues - Post project/company profile
a. Post an issue via Near
profilesrepository following "issue template," it would get synced to the website b. Fill company form via the website. It would get synced to GitHub issues - Apply for a job
a. Post a comment under an issue at Near
jobsrepository b. Fill "apply for a job" form via the website. It would get posted as a comment under "job" issue at to GitHubjobsrepository
When creating an issue via GitHub, we will use "issue template" to suggest the user follow the same template across all job posts and profiles. When creating the issue via website UI, all fields will be composed together following the same template across all job posts and profiles.
This project is build on top of Meteor.js, Blaze, SASS, and Node.js
- Install meteor.js
- Install NPM dependencies by executing
meteor npm installwithin project's directory
To run project locally two environment variables are required ACCOUNTS_GITHUB_ID and ACCOUNTS_GITHUB_SEC:
ACCOUNTS_GITHUB_ID="xxx" ACCOUNTS_GITHUB_SEC="yyyyy" ROOT_URL="http://127.0.0.1:5555" meteor --port 5555ROOT_URL variable and --port flag are optional.