A backend for third-party API calls data processing,persistance, and user auth; incorporating microservice architecture; built for the previous Cinematic Movie Finder Client refactored for Angular. A backend for third-party API calls data processing,persistance, and user auth; incorporating microservice architecture; built for the previous Cinematic Movie Finder Client refactored for Angular.
- Implementing microservice architecture on the backend
- Subgraph-Services:
- Auth - dir path: ./auth - ✓SQLite, ✓Prisma ORM, ✓bcrypt, ✓JWT user auth
- Movie Search - dir path: ./movie_search_service
✓fetch ImDB API✓Subgraph Federated- ✓ migrate from imdb to OmDB API to accommodate more robust api usage
- ✓ refactor graph and schemas on MovieDB
- ✓ configure for Federation and publish subgraph
- TODO: rewrite unit tests
- Movie-DB - dir path: ./server
- ✓MongoDB,
Prisma ORM,✓refactor server - ✓ implement services for ✓User, ✓Genre, ✓Actor, ✓Movie
- ✓ integrate JWT Auth for User
- ✓ Migrate to Mongoose as a more performant longterm solution to WriteConflicts raised by concurrent MongoDB transactions used by Prisma's ORM (a short term workaround would have been to implement retry middleware)
- ✓
handle errors caused by possible concurrent write to subdocumentnot an issue with mongoose upsert - ✓ update ✓models and services according to schema changes
- ✓ configure resolvers
- write unit tests for AppService
- ✓MongoDB,
- Trailer Search -
- ✓ implement microservice to query Youtube API for movie trailers ✓ and filter results for relevance
- ✓ respond with selected list of url paths
- ✓ configure for Federation and publish subgraph
- ✓ Configure supergraph and apollo router
- Subgraph-Services:
- Fill out Client:
- ✓ generate gql types
- replace legacy jquery rendering with angular/ngx-bootstrap rendering
- create user authentication (login/logout forms) and profile components
- create navbar components to link homepage, profile, and auth
- Configure Docker:
- finish docker/compose files
- create image cluster locally
- Deployment:
- AWS: EC2