docs
This documentation relates to the SEEN project. It will give you a general idea of my thoughts in the event that I don't completely finish the implementation of the project. It will be a working document so take a look at the history if you want a play by play.
Premise
Take the film/review website template provided and turn it into a working app.
Idea
My first idea is to show a full stack. I will start with the MongoDB service, then a Node.js service to hydrate this store with data. Preferably, I'd like IMDb data, but if restrictive, I'll look for an alternative. Once I have the data, I will write an API which surfaces it, and then, finally hook up the UI using the provided templates.
It would be nice to add features like search, tests, deployment scripts, and universal JavaScript if Dust.js supports it, however, given how busy my week is and how I lose NaN
hours on Saturday to a wedding I don't even want to go to, I'll probably knock that one on the head.
Finally, I would love to get this to a point where I can deploy it to a droplet. But now it's time for a sandwich.
- [mongodb] Start with MongoDB (plus some sort of UI for development)
- [external dep] Find a data source to provide film/review data & assets
- [worker] Implement a service to hydrate the data store using the aforementioned data source
- [api] Implement an API to surface the data in MongoDB
- [website] Implement the UI which consumes the API and renders the templates
denotes that feature was scrapped)
Optional features (if time permits, Search functionality (maybe just implement a simple version?)Production level robustness/logging/error handling- Tests for the API
- Containerisation + deployment scripts
Universal JavaScript for website UI
Deprioritised features (low value)
- User authentication/profile area ("YOU" link)
- Real historical data for film/review popularity
Bonus Round (only available to working apps)
- Deploy to Digital Ocean droplet
Status
This will essentially be my TODO list so I can keep track of what is what.
Done
- [mongodb] MongoDB docker scripts
- [external dep] API access to themoviedb.org
- [worker] Initial film & review data store hydration
- [worker] Resolve genres and store against film data
- [worker] Find more film data such as director, etc
- [api] Initial API setup using something like Hapi
- [api] Define endpoints/tests
- [api] Hook API up to MongoDB
- [worker] Convert film title to slug and store in db
- [worker] Generate mock film lengths
- [api] Implement film-based routes
- [api] Implement ES6 mocha tests
- [api] Implement review-based routes
- [website] Look into Dust.js and get example server-side rendering working
- [website] Get initial templates rendering with mocked data
- [website] Hook up server-side rendering to api
In Progress
- Deployment (brucey bonus!)
Scrapped features
- [website] Determine whether Dust.js supports isomorphic/universal JavaScript -- worth it for demo?
- [website] If using universal JavaScript, hook up pass through API endpoints