Menu

Technology

Frontend

Framework: React

Library: react-cookie (for using cookie),react-redux (for using redux), react-icons, react-router-dom (managing route),runtime-env-cra(inject runtime environment on production environment), framer-motion(make animation)

Backend

Framework: Flask

Library: elasticsearch, flask, flask_migrate, Flask-SQLAlchemy(using sql), Flask-Cors, gunicorn (building docker container), pandas, psycopg2 (postgresql), pytest, pyjwt (make jwt token), python-dotenv, requests, requests-futures

Deployment

Docker

Docker is used for building docker container to deploy on the kubenetes cluster

kubenetes

The Frontend and API was deployed on the kubenetes cluster

Azure

For deploying database and kubenetes cluster

Frontend Implementation

According to the use case diagram in the requirements page, we are building the search, register, login, and privacy policy page by using react-router-dom and nginx (production) for managing route in react.

search

we build the google-like search-page in the home route. When the user click on the search form, the application will fetch the related API and show the result in the Resultlist components. The image below show the search page(before and after searching) respectively

login and signup

the implementation details are shown below

Privacy Notice

use privacy-notice route to manage show our privacy policy

User Data/Login Implementation

User Login Implementation

We create a PostgreSQL to collect the user details. We made the following API endpoint: register, login, and user-detail for handling the user action related to login functionality

Related API implementation

Register - /register

Login - /login

User Details - /user-detail

Implementation on the frontend

Register

Login

User Data Implementation

We create a PostgreSQL to collect the search-history and click-history. We made the following API endpoint: search-history and click-history for handling the user action related to user data functionality

Related API implementation

Search History - /search-history

Click History - /click-history

Implementation on the frontend

Search History

Click History