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
profiles
repository withcandidate
label - Company/Project - GitHub issue from
profiles
repository withcompany
label - Job posts - GitHub issue from
jobs
repository withjob
label - Job response — GitHub issue' comment under issue at
jobs
repository withjob
label - Job offer — GitHub issue' comment under issue at
profiles
repository withcandidate
label
- Candidate (job seeker's page) - GitHub issue from
- Tags/Labels
candidate
company
job
- 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
jobs
repository. 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
profiles
repository 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
profiles
repository 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
jobs
repository b. Fill "apply for a job" form via the website. It would get posted as a comment under "job" issue at to GitHubjobs
repository
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 install
within 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 5555
ROOT_URL
variable and --port
flag are optional.