This repository is a part of the summer internship at SberTech, a subsidiary of Sberbank's IT company. Internship was focused on design and development of a system implemented using a microservice architecture.
It was necessary to implement a platform that would allow performing the following actions:
- Combine photos into collections
- Share your collections with other users
- Maintain a rating within each collection
- Add tags to photos
- Write annotations to photos
It was decided to create a system consisting of a set of microservices in the amount of four parts. Development was carried out in teams of three to four people. Our team worked on design and development of a microservice for user data and access control.
- API Gateway and Service Discovery
- Auth/Validation and user permissions microservice
- Microservice for content and metadata management
- Collections and rating microservice
Use the paсkage manager pip and virtualenv for building.
Edit application.cfg:
- Step 1: Fills DATABASE_URL with your database login and password (postgresql://user:password@host/database)
- Step 2 (Optionally): Fills gateway host and port
git clone https://github.com/D076/summer-practice-2020-SBT/
cd summer-practice-2020-SBT
python -m venv venv
venv\Scripts\activate.bat
pip install -r requirements.txt
python manage.py db init
python manage.py db migrate
python manage.py db upgrade
python manage.py runserver [-h HOST] [-p PORT]
git clone https://github.com/D076/summer-practice-2020-SBT/
cd summer-practice-2020-SBT
python3 -m venv venv
source venv/bin/activate
pip3 install -r requirements.txt
python3 manage.py db init
python3 manage.py db migrate
python3 manage.py db upgrade
python3 manage.py runserver [-h HOST] [-p PORT]
For generating roles and permissions run roles_permissions.sql script in your database.