/downtown

Primary LanguageJavaScriptMIT LicenseMIT

Job Finder

MIT License

Project Description :

  • This is a simple Job Finder application, where the user can first login or sign up (if a user does not have an account).

  • After login, User can search jobs by role, technologies, location or comapny. Also user can get all jobs,post a new job and view the jobs that are posted by logged in user.

User Story

As a user, I should be able to login if I am a returning user.
As a user, I should be able to register using firstname, lastname and email, password if I am first time visitor.
As a user, I should be able to search for a job by technology, salary, location, and role.
As a user, I should be able to get all jobs listed.
As a user, I should be able to apply for Jobs.
As a user, I should be able to post a job.
As a user, I should be able to get jobs that I posted.

Technology :

1. MySQL :

  • MySQL is an open-source relational database management system.

  • A relational database organizes data into one or more data tables in which data types may be related to each other; these relations help structure the data.

2. Express.js :

  • Web Applications : Express is a minimal and flexible Node.js web application framework that provides a robust set of features for web and mobile applications.

  • APIs : With a myriad of HTTP utility methods and middleware, creating a robust API is quick and easy.

3. Node.js :

  • Node.js is an open-source and cross-platform JavaScript runtime environment.

  • A Node.js app is run in a single process, without creating a new thread for every request.

4. Sequelize :

  • Sequelize is a promise-based Node.js ORM for Postgres, MySQL, MariaDB, SQLite and Microsoft SQL Server. It features solid transaction support, relations, eager and lazy loading, read replication and more.

5. Handlebars.js :

  • Fast execution: Handlebars compiles templates into JavaScript functions. This makes the template execution faster than most other template engines.

  • Mustache-compatible: Handlebars is largely compatible with Mustache templates. In most cases it is possible to swap out Mustache with Handlebars and continue using your current templates.

6. Passport :

  • Passport is Express-compatible authentication middleware for Node.js.

  • Passport's sole purpose is to authenticate requests, which it does through an extensible set of plugins known as strategies.

  • The API is simple: you provide Passport a request to authenticate, and Passport provides hooks for controlling what occurs when authentication succeeds or fails.

7. Passport-local :

  • Passport strategy for authenticating with a username and password.

  • This module lets you authenticate using a username and password in your Node.js applications. By plugging into Passport, local authentication can be easily and unobtrusively integrated into any application or framework that supports Connect-style middleware, including Express.

8. bcryptjs :

  • Hashes the password before storing into the database.

9. @handlebars/allow-prototype-access :

  • This package allows you to create a new Handlebars instance, that behaves like version 4.5.3 and allows access to the prototype

10. express-session :

  • Create a session middleware with the given options.

  • Session data is not saved in the cookie itself, just the session ID. Session data is stored server-side.

Tools:

ES Lint :

  • ESLint is a tool for identifying and reporting on patterns found in ECMAScript/JavaScript code.

Travis CI :

  • The simplest way to test and deploy projects.

  • Easily sync your projects with Travis CI.

Features :

  1. User can sign up with firstname, lastmane, email and password if user is first time visitor.

  2. After logging in with email and password, user can search for the job ,also apply for a job by clicking on the contact.

  3. User can post a new Job and can also view the jobs he/she posted.

  4. User can also get list of all jobs available by clicking on 'All Jobs'.

Future Development:

  1. Ability to upload resume in order to get recognition by the recruiters.

  2. Create user portfolio.

  3. User could be able to delete the job he/she posted

  4. Get the API key to fetch real time data and with the real time data ,redirect to a company website for applying for a Job.