Node Backend Capstone Project from Thinkful's Fullstack Web Development program.
- The capstone project for this course is largely open ended. You'll use Node and Express to create a backend that serves your static files and a REST API. You'll also create a client app that utilizes the API. The user experience is open ended and up to you, but ultimately, your app should do something interesting or valuable for your intended users.
- Create a Client
- Serve Static Files
- Implement a REST API with all four CRUD operations
- Comprehensive Tests for the API Layer
- Use Continuous Integration
- Polish: Your polished client should have compelling design and be responsive and follow accessibility best practices.
Project Landing Page
Mission Page w/ user signed in
Write Review Form
Drone Model Specs
Drone Make/Model Page
Mobile Review Page
Droned Reviews is a user sourced drone review website that provides a platform for users to share personal knowledge and experiences with quadcopters as well as others to come and read up on first hand information on the latest drone makes and models provided by real drone pilots and hobbyists such as myself. Users can also navigate through images and technical specifications of some of the top models manufactured by the most trusted names in the personal drone industry. Purchase links are also provided for each drone model directed to Amazon products as part of the Amazon Affiliates Program.
- Slick - Responsive carousel jQuery plugin
- Back End ~ Server-side technologies and Node modules
- Express 4.15.3 - A minimalist web framework for Node.js
- EJS-Mate - Node module to provide layouts, partials and block template functions for EJS templating engine
- database for storing user information, posts, comments, and images
- A MongoDB object modeling tool designed to work in an asynchronous environment.
- MongoDB specification for storing and serving large files. In this case specifically, user uploaded images
- MongoDB session store for Express to allow persistant user sessions
- Authentication middleware for Node
- provides HTTP Basic authentication strategies for Passport and Node.js
- Simple session middleware for Express to help with user authentication
- Node.js body parsing middleware
- Body parsing for multipart/form-data in Express -- exposes user file uploads at req.files
- Express middleware to parse cookies sent in requests
- HTTP request logger middleware for node.js
- A BDD / TDD assertion library for node and the browser, works seamlessly with Mocha testing framework among others
- A plugin for Chaijs that integrates HTTP testing with Chai assertions
- Continuous Integration testing that tests latest build before deploying to production environment
- Task manager
- Node package that restarts server and made for use with Gulp tasks
- Automation tool to make the development process faster.
- Allows for multiple screens to reload live and all interactions are in synchronization, mirroring actions across every browser on any device located on local network.
- compatible with Gulp
- Gulp + gulp-nodemon + Browsersync combine to streamline the entire development process
- npm module support for browser
- ES6 support for older environments (IE8 etc)
- Hosted on Heroku's Cloud Application Platform
- (PaaS) platform as a service
- Responsive, mobile first design strategy
- All tests handled by Mocha.js using Chaijs and chai-http assertion libraries to test API endpoints
- Used by TravisCI to test master branch before deploying to production environment on Heroku
- Cloud MongoDB hosting provided by mLab
- Icons provided by
- Image files are stored in base64 binary encoding using GridFS, a MongoDB specification that saves larger files in chunks and combines these chunks on request to serve the original file back to client. Video file storage to be implemented soon.
- Drone model videos are powered by the YouTube Data API