eudaimonia-api
eudaimonia-api copied to clipboard
An API key authenticated suite of endpoints to perform emotion detection and mood analysis on a person and according to their preferences, generate recommendations of movies, books, music, etc.
The Eudaimonia API
Table of Contents
- Description
- Frameworks and Tools
- Prerequisites
- Installation
- Roadmap
- Credits
Description
The Eudaimonia API is a semi-browsable suite of managed endpoints that helps the main Eudiamonia web application to work smoother by offloading large application code describing the NLP models for the mood analysis as well as the ML models for film recommendations.
- API endpoints accessible with an API KEY that can be obtained upon submitting a request.
- TMDB 5000 Movie Dataset from Kaggle used for the film recommendations. Logistic Regression algorithm for predictions. Additional inputs of mood for consideration is allowed.
- Lexical-based NLP algorithms used for mood analysis. Textual input will get analysed and emotions such as Anger, Sadness, Happiness, Fear and Surprise would be evaluated.
(Top)
Frameworks and Tools
The major frameworks, tools, services and APIs used for the making of this project is hereby listed:
- Django REST: The API framework used to build the film and music recommendation system.
- Postman: The API designing, testing and refinement tool used to make the API properly functional.
- Scikit-Learn: Predictive model for movie recommendation.
- Jira: The collaboration and software development tool used to simplify workflow.
- Sentry: The exception management service used for fatal error logging.
- Snyk: The security management service used for source code security vulnerability checks.
- Spotify API: API for music recommendation.
- VSC: The integrated IDE for development.
(Top)
Prerequisites
-
Install Python for your respective operating system at https://www.python.org/downloads/.
-
Install version control system of Git for your respective operating system at https://git-scm.com/downloads.
(Top)
Installation
-
Clone the repository:
git clone https://github.com/Diptonil/eudaimonia.git
-
Create a virtual environment for installation of required modules:
python -m venv venv venv\scripts\activate pip install -r requirements.txt
-
Run the website on the development server:
python manage.py runserver
Now the API is up and running (at port 8000 in case nothing else is mentioned). To access it, go to http://localhost:8000/. Since the project is under developement, there is no frontend component to it as of now. It would be later added as the project edges towards production.
IMPORTANT: Some files have not yet been committed and code is being refactored. The project is not functional as of now.
The API shall soon be deployed and put to public use from which the endpoints would be directly accessible.
(Top)
Roadmap
There are subsequent upgrades to be made to the project to reach the final stage. Here are a list of all immediate objectives:
- [x] Configure initial particulars and services.
- [x] Develop authentication and authorization scheme.
- [ ] Service to request API key.
- [x] Develop mood analysis systems.
- [x] Develop film recommendation systems.
- [x] Develop music recommendation systems.
- [ ] Develop book recommendation systems.
- [ ] Configure the frontend of the system.
- [ ] Extend the prior features by refinement
- [ ] Deploy using CI/CD practices.
(Top)
Achievements
- Third Place in the IEEE ComSoc Bangalore chapter hackathon 'CODIFY' arranged by BNMIT.
(Top)
Credits
The collaborators involved in this project are:
- Diptonil Roy
The academic and theoretical resources and articles utilized for this project are:
- The Genre Theory in Film: A simplified and distilled version of the paper has been utilised, keeping in mind the nuances that any user may be capable of comprehending.
- Ekman's Basic Emotion Model: The emotions considered for any particular user is of happiness, sadness, anger, fear and surprise.
(Top)