Media Quotes API
November 8, 2022 ยท View on GitHub
Return when things were said in your favorite media!
Defined as an OpenAPI, for easy documentation via Swagger UI and usage with various tools.
Link to project: https://r2-quotes.herokuapp.com

Examples
{
"quotes": [{
"timeStamp": 694.11,
"text": "Sometimes I'll start a sentence and I don't even know where it's going.",
"media": {
"title": "The Office",
"season": 5,
"episode": "11"
}
}],
"counts": {
"total": 1,
"page": 1
}
}
How It's Made
Tech used: HTML, CSS, JavaScript, TypeScript, Express, Node.js, OpenAPI, EJS, Mocha, C8, MongoDB, Playwright
Powered by captions of your favorite TV Shows & Movies, uploaded into the database in an easily searchable manner, exposed both as a basic EJS frontend allowing for the searching of media quotes by query, title, and media fields.
Exposed as an OpenAPI via express-openapi with a Swagger UI via swagger-ui-express, allowing for easy usage and experimentation.
With a near 100% test coverage provided by mocha, c8, and frontend coverage via playwright.
Deployment
Combining GitHub Actions with my tests and Heroku, the API is guaranteed to always be stable and working at all times.
Optimizations
The API can additionally be exposed via GraphQL to be accessible to more developers, in addition there are a few MongoDB aggregation pipelines that can be rewritten more efficiently, but with the amount of current data the performance improvement would be negligible.