Get the App: Sander Health
Heroku: sanderhealth-development sanderhealth-production
Still need to set up heroku & Travis
These instructions will provide information on the overall design and project structure. They will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.
- Run
mongo --version
and should get a response if installed correctly.
- (Helpful but not required)
- Run
npm install -g nodemon
to install. - Can now edit package.json or simply run
nodemon server.js
To get involved with this project, you'll need to do a few things:
- Download Node.js.
- Clone this repository by running
git clone https://github.com/leesander1/hearmenow-server.git
in the location of your choice. - Download the dependencies by running
npm install
when you're in the project directory. - Create new '.env' file following the example.env and input your api keys and environmental variables accordingly.
- To start run
npm start
ornodemon server.js
- The server should be accessible at
localhost:3000
- Get the electron app link
- Deploy server.
Tests are run using mocha
Add new .js file to /tests folder.
npm test
Name | Description / Purpose |
---|---|
server.js | The main application file and entrypoint. |
config/passport.js | Passport strategies and middleware to manage login. |
models/User.js | Mongoose schema and model for User. |
public/ | Static assets (fonts, css, js, img). |
views/ | All the handlebars layouts and views |
controllers/api.js | Controller for /api route and to manage twilio requests. |
controllers/home.js | Controller for home. |
controllers/user.js | Controller for user account management. |
controllers/notification.js | Controller to manage notifications |
controllers/entry.js | Controller for entries. |
test/ | Folder containing all our unit tests for mocha. |
example.env | Your API keys, tokens, passwords and database URI. |
package.json | npm package dependencies & node config |
.travis.yml | Contains travis ci configuration settings |
- Time/Date - moments
- User Management/Sessions - passport
- DB - mongodb / mongoose mlab
- CI - travis ci
- Hosting - heroku
- Dependency Management - david
- Tasks - cron
- web notifications - node-pushnotifications
- Voice / SMS - twillio
- Email - sendGrid
- Notifications - google cloud messaging (polymer component)
- Front-end / Templating - electron / polymer & handlebars
- Package Manager - npm / yarn
(See package.json) but at a glance, the following packages are / will be used.
- async
- bcrypt
- chalk
- compression
- connect-mongo
- dotenv
- express
- errorhandler
- lodash
- passport-local
- moments
- supertest
- sinon
- eslint
- express-session
- body-parser
- express-validator
- serve-favicon
- mongoose
- mocha
- nodemailer
- passport
- passport-google-oauth
- request
- twilio
- validator
- Clone repo. We work off the development branch.
- Create new branch for your feature.
- Submit pull request for your branch into development.
- Updated project & uploaded to github
- Initial Setup
See also the list of contributors who participated in this project.
- Hat tip to anyone whose code was used
- Project structure and information from hackathon-starter
- Template for README
- The labels used in the issues section were inspired by this site
- Issue and PR Templates were inspired by this site