|Project||Full Stack Web Development|
|Region||Paris (France) & Seoul (South Korea)|
|Role||Full Stack Developer|
|Framework||KeystoneJs (Mongoose, ExpressJs & NodeJs)|
|Tools||GulpJs, Flow, Babel, Google Docs, Inkscape|
|Design Pattern||Model View Controller, Facade (API)|
|Year||2015 ~ 2016|
This project page showcases the workflow I designed when developing websites as a full stack developer. It does not focus on any website in particular.
Single Code Base
As shown on this diagram we can divide the files into 3 different stages:
- Client - The files have been statically served or dynamically generated, if the website is in production most of the files have been minified.
The architecture presented before relies on the use of multiple micro-services. When in development stage the files are versioned on GitHub, then, when in server stage files are deployed from GitHub to Heroku which becomes the center of gravity of the micro-services.
The key of this architecture is to logically distribute roles between micro-services.
- DNSimple - DNS management and load balancing.
- Google Apps for Work - E-mails, Calendar and Cloud services.
- Heroku - Highly scalable NodeJS server.
- MLab (formerly MongoLab) - Scalable NoSQL Database
- PaperTrail - Log management
- MailChimp - User Friendly Newsletter management
- Cloudinary - Content Delivery Network
- GitHub - Collaborative Code management
The double benefit of the scalability of this architecture is to be able to scale up or down as you go. The fees being gradual you should only pay what your application needs.