{"id":16629114,"url":"https://github.com/bradgarropy/nwa","last_synced_at":"2026-04-11T05:32:51.287Z","repository":{"id":93265997,"uuid":"97206880","full_name":"bradgarropy/nwa","owner":"bradgarropy","description":"Node Web Application - Template!","archived":false,"fork":false,"pushed_at":"2020-09-18T03:18:47.000Z","size":214,"stargazers_count":2,"open_issues_count":1,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-01-03T16:32:43.385Z","etag":null,"topics":["dotenv","express","expressjs","html","javascript","mongodb","mongoose","node","nodejs","nodemailer","passport","passport-local","passportjs","pug","rest","rest-api","web-app","web-application","web-server"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bradgarropy.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-07-14T07:37:06.000Z","updated_at":"2019-06-10T15:22:32.000Z","dependencies_parsed_at":null,"dependency_job_id":"9806072c-3d9a-4a4b-a819-52e308585d44","html_url":"https://github.com/bradgarropy/nwa","commit_stats":null,"previous_names":[],"tags_count":0,"template":true,"template_full_name":null,"purl":"pkg:github/bradgarropy/nwa","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bradgarropy%2Fnwa","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bradgarropy%2Fnwa/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bradgarropy%2Fnwa/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bradgarropy%2Fnwa/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bradgarropy","download_url":"https://codeload.github.com/bradgarropy/nwa/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bradgarropy%2Fnwa/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31669832,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-10T17:19:37.612Z","status":"online","status_checked_at":"2026-04-11T02:00:05.776Z","response_time":54,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dotenv","express","expressjs","html","javascript","mongodb","mongoose","node","nodejs","nodemailer","passport","passport-local","passportjs","pug","rest","rest-api","web-app","web-application","web-server"],"created_at":"2024-10-12T04:39:40.567Z","updated_at":"2026-04-11T05:32:51.271Z","avatar_url":"https://github.com/bradgarropy.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Node Web Application - Template!\n\n[![Build Status](https://travis-ci.org/bradgarropy/nwa.svg)](https://travis-ci.org/bradgarropy/nwa)\n[![NSP Status](https://nodesecurity.io/orgs/brad-garropy/projects/27126b8e-87c8-46a5-bf73-80ea79993e3b/badge)](https://nodesecurity.io/orgs/brad-garropy/projects/27126b8e-87c8-46a5-bf73-80ea79993e3b)\n\n![NWA](https://raw.githubusercontent.com/bradgarropy/nwa/dev/nwa.png)\n\n*This template is a continuation of the [node-only-server](https://github.com/bradgarropy/node-only-server) I created. The goal was to extend that learning experience into an actual template I could use to produce web applications faster. Hope you like it!*\n\nWhen I set out to build this template, I wanted to mimic a real application environment as much as possible. To that end, I've created a continuous integration workflow for this app using [Travis CI](https://travis-ci.org/) and [Heroku](https://dashboard.heroku.com/). The strategy was to have two branches, [master](https://github.com/bradgarropy/nwa/tree/master) and [dev](https://github.com/bradgarropy/nwa/tree/dev), which are both automatically built and deployed to [Heroku](https://dashboard.heroku.com/) anytime changes are pushed.\n\n\n## Continuous Integration\n\nContinuous integration is done by linking [Travis CI](https://travis-ci.org/) with this GitHub repository. You can see [here](https://travis-ci.org/bradgarropy/nwa/branches) that I'm building both branches anytime change is committed. My build process is very simple, just run [jshint](http://jshint.com/) and [nsp](https://nodesecurity.io/) to check for basic syntax and security issues.\n\n\n## Deployment\n\nI decided to go with [Heroku](https://dashboard.heroku.com/) for my cloud hosting platform, as it is **completely free** and offers integration with  [GitHub](https://github.com/) and [Travis CI](https://travis-ci.org/). I configured a \"pipeline\", which tracks my [master](https://github.com/bradgarropy/nwa/tree/master) and [dev](https://github.com/bradgarropy/nwa/tree/dev) builds, and deploys them if the build succeeds. You can find both environments up and running here:\n\n* [nwa-production](https://nwa-production.herokuapp.com/)\n* [nwa-staging](https://nwa-staging.herokuapp.com/)\n\nEach application has its own URL, and I took advantage of the NODE_ENV variable to place a development banner in the staging application.\n\n\n## Sooo What Is It?\n\nThis web application integrates multiple technologies to deliver a base set of features required of a web server.\n\n\n### Technologies\n\n* [Express](https://expressjs.com/) web server\n* [MongoDB](https://www.mongodb.com/) database\n    * Hosted by [mLab](https://mlab.com/)\n    * Using [mongoose](http://mongoosejs.com/) ODM\n* [pug](https://pugjs.org/api/getting-started.html) HTML templates\n* [Bootstrap](http://getbootstrap.com/) styles\n* [Passport](http://passportjs.org/) authentication\n\n\n### Features\n\n* User Management\n    * Database Schema\n    * Registration\n    * Login\n    * Logout\n    * Profile Update\n    * Password Change\n    * Password Reset\n* Flash Messages\n    * Success\n    * Info\n    * Warning\n    * Error\n    * Danger\n* Secure\n    * Loads secrets from .env file\n    * Uses secure HTTP headers\n\n\n## Usage\n\nFirst, clone the repository.\n\n```\ngit clone https://github.com/bradgarropy/nwa.git\n```\n\nNext, install the dependencies.\n\n```\nnpm install\n```\n\nThen, start the web server.\n\n```\nnpm start\n```\n\nFinally, navigate to the site.\n\n```\nlocalhost:3000\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbradgarropy%2Fnwa","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbradgarropy%2Fnwa","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbradgarropy%2Fnwa/lists"}