Description: A url shortening microservice written in Node/Express/Mongo. The cool thing here is that the main application logic is written in a pure, functional-style. Utilizing functional composition, currying, and monadic interfaces, I aimed to create a service that is fault-tolerant, pure, and easy to reason about.
Todo(in no particular order):
Refactor composed findOrCreate function in ApiController- In UrlData pre-save hook, assure that generated shortenedUrl is unique
Add route to receive shortened url- If needed, add some more helpful comments/refactor function names
- Jest Test is the Best
- Add pretty client
- refactor dir structures
- add load balancing with clusters
- configure docker - more like reconfigure (armed with better understanding of microservice architecture)