Fullstack (React) Capstone Project from Thinkful's Fullstack Web Development program.
- Do something interesting or useful.
- Be a fullstack app using HTML, CSS, React, Node, Express, and Mongoose.
- The client and API should be deployed separately and stored in separate GitHub repos.
- Both client- and server-side code should be tested, and you should use TravisCI for continuous integration and deployment.
- Your app should be responsive, and should work just as well on mobile devices as it does on desktop devices.
- All code should be high quality, error free, commented as necessary, and clean.
- The styling on your client should be polished.
- Your app should have a landing page that explains what the app does and how to get started, in addition to pages required to deliver the main functionality.
- provide DEMO account credentials
- username: demo
- password: demopassword
CryptoKeeper is a cryptocurrency tracking application using real-time market data via Socket.IO and Cryptocompare. The current cryptocurrencies tend be quite volatile compared to more traditional currencies and stocks with prices sometimes dropping or increasing drastically in a matter of hours. By registering for an account, users can overcome the uncertaintity of keeping up with the market by creating custom events to monitor a given currency for a specific condition.
(e.g. Bitcoin just reached $12k, Ethereum dropped 5%)
If and when a condition is eventually met, a notification will be sent to the user via text message and/or email indicating the current price. User's have control over each event condition as well as the method of deilvery and custom message that will be displayed with the notification.
- 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
- Hosted on Heroku's Cloud Application Platform
- (PaaS) platform as a service
- Cloud MongoDB hosting provided by mLab
- 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
- A cron job is dispatched every 10min to check all user event conditions against the current cryptocurrency prices. If a condition passes, notifications are sent to users via sms text message using Twilio services and / or via email using Mailgun services.
- User authentication is handled using Passport.js with a JWT authentication token strategy. User requests must provide a valid JWT auth token in header to access protected endpoints. Token renews itself automatically and expires after 7 days.
- 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.
- Market data is powered by the Cryptocompare API and websocket