TorontoTechJobs is a job board application focused on tech-related jobs within the Greater Toronto Area (GTA) and remote positions.
- Clone the backend repository:
git clone https://github.com/YeonguChoe/TorontoTechJobs.git cd TorontoTechJobs/be
- Install Node.js dependencies:
npm install
- Create a
.envfile in the root directory with the following variables:DATABASE_URI=mongodb+srv://<username>:<password>@<cluster>/<database>?retryWrites=true&w=majority
- Replace
<username>,<password>,<cluster>, and<database>with your MongoDB Atlas credentials and JWT secret.
- Start the backend server:
npm start
- Open another terminal, navigate to frontend repository:
cd TorontoTechJobs/fe
- Install Node.js dependencies:
npm install
- Run the frontend application:
npm start
- The frontend should now be accessible on http://localhost:3000.
- Register a new user using
/users/register. - Log in to receive a JWT token using
/users/login. - Create, update, delete job postings using
/jobsendpoints. - Filter job postings by company name or job type using
/jobs/filter-by-company-nameand/jobs/filter-by-job-type.
- POST /users/register: Register a new user.
- POST /users/login: Login and get a JWT token.
- PATCH /users/update: Update user information (requires authentication).
- GET /jobs: Get all job postings.
- GET /jobs/filter-by-company-name?company_name=<company_name>: Get jobs by company name. (requires authentication)
- GET /jobs/filter-by-job-type?job_type=<job_type>: Get jobs by job type (frontend, backend, fullstack, mobile, machine learning).
- GET /jobs/: Get a job by ID.
- POST /jobs: Create a new job posting (requires authentication).
- PATCH /jobs/ : Update a job posting (requires authentication).
- DELETE /jobs/ : Delete a job posting (requires authentication).
- React
- Node.js
- Express.js
- MongoDB (with Mongoose)
- JWT for authentication
- bcrypt for password hashing
- Express Validator for input validation