/cv-index-search-api

Back of an search engine of CVs

Primary LanguageTypeScriptMIT LicenseMIT

CV Indexing (PDF & Word) and searching made with Typescript using ELK Stack, NodeJS, VueJS.

Introduction

Cv app is a cv search engine platform, helping HR to find quickly the perfect candidate by searching with simple or multiple keywords. CVs can be uploaded with different formats such as PDF or DOCX. When uploaded, they are parsed and indexed in Elastic search db.

DAAR Project 2: Searching distributed data with ElasticSearch.

Binome : Mamy Razafintsialonina & Willyan LIN

Quick Links

Some shortcuts to open when the app is running locally on your machine

Getting Started

Requirements

Make sure to set at least 4gb of memory in docker settings Otherwise some containers might crash.

Run

Clone the repository, install the dependencies.

$ git clone git@github.com:stl-insta/cv-index-search-api.git <application-name>
$ cd <application-name>
$ cp .env.example .env

Start the application using Docker

Install dependencies

$ npm install

Run the application locally.

$ docker-compose up api

When the api started successfully and displays server info. Run the frontend app in another console

$ docker-compose up cv-app

To stop the services.

$ docker-compose stop cv-app
$ docker-compose stop api

Seed Data

Seed some fake data, works only while docker and the app is running

$ npm run migrate

Kibana

Kibana is a free and open user interface that let us visualize Elasticsearch data and navigate the Elastic Stack.

$ docker-compose up kib01

Logs

View logs of the container.

$ docker-compose logs -f

Tests

Some unit testing has been implemented.
The migration script acts as an end-2-end integration test.
Please make sure the app is running inside a docker container before launching the test.

$ npm run test

Tools

Swagger

We use Swagger UI to documente our REST API image

Postman API platform

We also use Postman to test easily our queries and we share our requests on Collections.

image

File parsing

We use tesseract OCR to read PDF files content.
We use docx4js and xml2js to read docx files content.

User Interfaces

Home Page: image

File Upload Page: image

Search Page: image

Future works

It would be great to have those features in the near future:

API:

  • filter
  • stats (popular language, skills, average)

Front:

  • pagination
  • loader
  • sort

Contributing

Feel free to send pull requests. Feel free to donate hugs and kisses.

License

cv-index-search is under MIT License.