Giter Site home page Giter Site logo

movielens-api's Introduction

πŸ€– Movielens API

forthebadge made-with-python Python 3.12 Docker Open Source? Yes!

β­• Contents

β­• The project's purpose

The purpose of this project is to leverage the Movielens 20M Dataset from Movielens as its primary data source. It aims to provide a range of APIs for efficient data access and manipulation.

β­• What tools were used to create this project

Technology πŸ”—
django v.5 [Github Link]
django REST [Github Link]
django-filter [Github Link]
Simple JWT [Github Link]
drf-yasg [Github Link]
asyncio [Github Link ]
pandas [Github Link]
poetry [Github Link]
docker [Github Link]
docker-compose [Github Link]
pytest [Github Link]
coverage [Github Link]
mypy [Github Link]

β­• Before you begin

Before you begin, please follow these steps:

  1. Create a folder named datasets in the root directory.
  2. Download and extarct the ml-20m dataset in the datasets directory.

It should look like this:

β”œβ”€β”€ datasets
β”‚   └── ml-20m
β”‚       β”œβ”€β”€ links.csv
β”‚       β”œβ”€β”€ movies.csv
β”‚       └── tags.csv

β­• How to Run the Project

Navigate to the root of the project.
To build the image from the Dockerfile, run:

docker compose up --build -d


Or, there's a Makefile for your convenience, so just run: (Check other commands too!)

make run


Now, you can check the Swagger URL for API documentation.

http://127.0.0.1:8000/swagger/


🌟 Now, you need to load the ml-20m dataset in to the database.

make load_data


Or, If you want to run the project locally, you need to have poetry installed first.

pip install poetry
poetry install
poetry run python manage.py runserver 0.0.0.0:8000
poetry run python manage.py load_datasets

β­• How to run tests

Run pytest command to run the tests separately.

make tests


And, what about Test Coverage?

make coverage

# Backend Directory               Stmts   Miss  Cover
# -----------------------------------------------------
# Test Coverage TOTAL              255     30    88%


🌟 This project has been thoroughly checked with mypy for type consistency, and it currently passes all mypy checks without any issues.

make mypy

β­• Final step

make coffee

Be Happy Even if Things Aren’t Perfect Now. πŸŽ‰πŸŽ‰πŸŽ‰

Enjoy your coffee! β˜•

movielens-api's People

Contributors

ko-sangari avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.