The YaMDb project is designed to collect feedback on products. Products can be: "Books", "Movies", "Music".
The project includes:
- A system for storing and processing information on products, reviews and users.
- A system for remote access to information, implemented using the REST architecture.
- The project allows you to store information:
- about users
- about products
- about product reviews and their comments
- The project allows you to specify additional information about products:
- genre (fantasy, thriller, etc.)
- category (movie, book, music, etc.)
- The project allows you to work with users:
- register user
- get information about your user
- receive authentication parameters for working via the API protocol
- The project allows you to specify the user's access role:
- user
- moderator
- administrator
- The project allows you to add reviews to products:
- the review is given a score (from 1 to 10)
- products have an automatically calculated rating on based on ratings in reviews
- Users
- adding a user
- get authentication parameters
- user management (delete, change, view)
- Categories
- adding categories
- category management (delete, view)
- Genres
- adding genres
- genre management (delete, view)
- Products
- addition product
- product management (delete, change, view)
- Product reviews
- adding reviews
- reviews management (delete, change, view)
- Comments on reviews
- adding comments
- comment management (delete, change, view)
python3.7.9
django 2.2.16
djangorestframework 3.12.4
djangorestframework-simplejwt 5.1.0
django-filter 21.1
Clone the repository and change into it on the command line:
git clone https://github.com/web2cap/api_yamdb.git
cd api_yamdb
Create and activate virtual environment:
python3 -m venv venv
source venv/bin/activate
python3 -m pip install --upgrade pip
Install dependencies from requirements.txt file:
pip install -r requirements.txt
Run migrations:
python3 manage.py migrate
You can load test data into the database:
python3 manage.py loaddata
Run project:
python3 manage.py runserver
A description of the project methods API is available at: http://127.0.0.1:8000/redoc/
The development team of the 32 Yandex.Practicum categories:
- Pavel Koshelev (Teamlead)
- Kirillov Evgeny
- Sudoplatova Marina
The project was developed in a team, using the agile methodology. We used Trello as a task tracker. I was a team leader, responsible for the development process, team morale, developed the authorization section and the Users application. All project developers conducted code reviews.