## Notes
Patriate is a patriarchy/intersectionality rating app.
## System Diagram
### Inspirations
- [IMDB](https://imdb.com)
- [[Goodreads]]
### Use Cases
- User should be able to search movies/media/content/actors/directors/producers/companies/genres/books
- Datastore: Elasticsearch?
- Initially use IMDB search while our own database gets populated?
- User should be able to see movies/media/content
- User should be able to rate & review movies/media/content
- User should be able to share content/ratings
- User should be able to pay to remove ads, else use Redis or something to show ads periodically
- Gamify user contributions by number of content reviewed/added
### Business Units
- API Gateway
- Use AWS account to get data, if necessary
- Check and see if user can do what, rate limiting, etc
- Search Service
- Use AWS account to get data, if necessary
- Check and see if user can do what, rate limiting, etc
- Rating Service
- Uses own infrastructure
- Gamification Service
- Number of uploads
- Number of ratings
- Number of high ratings
- Other users can rate ratings for accuracy
### Data Structures
- Content
- Movie
- Release date
- Description
- Title
- Relevant people
- Book
- Video (Instagram, Twitter, TikTok)
- Post (Instagram)
- Entity
- Actor
- Director
- Producer
- Influencer
- Company
- User
- Free
- Paid
## IMDB API
Looks like it might cost a lot to use the IMDB API, so I might have to look for alternatives.
## Diagram
- Users
- API Gateway
- Media Service
- Uses some external API to get data via HTTP
- Exposes data by using [[gRPC]]
- Rating Service
- In-house database
- Exposes data by using [[gRPC]]
## Media Service APIs
- GET /api/v1/media
- GET /api/v1/media/{id}
## Rating Service APIs
- POST /api/v1/rating