Challenge Overview
Overview
Welcome to the Backend #1 challenge for our Mobile Hybrid buildpack project. There will be several challenges in this project dealing both with a nodejs based backend hosted on Heroku and an Ionic front end demo application. Get involved now and follow along!
Challenge Goal
Prior to starting, please ready the document "MobileHybridIonicHerokuBuildpack.pdf" attached in the forums. This document explains the overall concept were trying to achieve.
In this challenge we're starting the build of the backend. We'll be starting small and will build iteratively as we go forward. The goal for this challenge is two-fold:
1. Create the primary node / express backend application structure
2. Implement all CRUD API endpoints from the yaml document, using the provided data
Additional Notes
- It is very important that the base node application is as modular as possible. The CRUD functionality we're implementing in this challenge should be thought of as a "module" that can be "included" or "not included" in the backend server. The idea is that as we add more features and sets of endpoints, each set can be easily included or left out. For example - in the future we may have modules for CRUD, authentication, push notifications, 3rd party API access, ...etc. We should easily be able to add or remove each "module" from the backend. We're counting on the expertise in the community as to how to do this so that it is simple and well designed.
- The data is provided in the forums as a direct psql backup from a Heroku provisioned PG database (so it should be super-easy to import and get started).
- The API implementation should be generic - specific references to fields in the games table (or the table by name) should not be in the code (although they obviously will be in the postman file).
- All config variables should be coded to pull from the Heroku env with fallback to local definitions if not present on the Heroku instance.
- Inline documentation is critical, this is a "reference project" so should be well documented and everything should be clear.
- There should be an easy way to tailor each endpoint to use authorization or not. Demonstrate this with a simple Auth header token (a static token is fine for this challenge - we will be addressing authentication in detail in an upcoming challenge).
- Please do not modify the API. If you feel it needs modification, please discuss in the forums.
Final Submission Guidelines
Challenge Deliverable
- The backend code meeting all the requirements above
- No video necessary
- Simple deployment guide in MD format
- A live Heroku instance running your code (using the games data in a Postgres database)
- A postman file demonstrating all API calls to your live Heroku instance