{"id":13432465,"url":"https://github.com/jedireza/aqua","last_synced_at":"2026-01-10T14:48:16.353Z","repository":{"id":27431115,"uuid":"30908955","full_name":"jedireza/aqua","owner":"jedireza","description":":bulb: A website and user system starter","archived":true,"fork":false,"pushed_at":"2018-03-09T03:14:45.000Z","size":4060,"stargazers_count":1379,"open_issues_count":0,"forks_count":357,"subscribers_count":76,"default_branch":"master","last_synced_at":"2024-09-21T17:37:03.007Z","etag":null,"topics":["admin","boilerplate","hapi","javascript","mongodb","nodejs","react","starter-kit","user-manager","user-system"],"latest_commit_sha":null,"homepage":"https://jedireza.github.io/aqua/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jedireza.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-02-17T08:42:06.000Z","updated_at":"2024-09-10T10:03:17.000Z","dependencies_parsed_at":"2022-07-25T17:32:35.663Z","dependency_job_id":null,"html_url":"https://github.com/jedireza/aqua","commit_stats":null,"previous_names":[],"tags_count":47,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jedireza%2Faqua","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jedireza%2Faqua/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jedireza%2Faqua/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jedireza%2Faqua/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jedireza","download_url":"https://codeload.github.com/jedireza/aqua/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":219871972,"owners_count":16554475,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["admin","boilerplate","hapi","javascript","mongodb","nodejs","react","starter-kit","user-manager","user-system"],"created_at":"2024-07-31T02:01:11.993Z","updated_at":"2025-09-27T10:31:48.990Z","avatar_url":"https://github.com/jedireza.png","language":"JavaScript","funding_links":[],"categories":["JavaScript","Boilerplates starter kit","📦 Legacy \u0026 Inactive Projects"],"sub_categories":[],"readme":"# No longer maintained\n\nBoilerplates can be a huge time sink to maintain and I've decieded to archive\nthis project.\n\nI started the work for upgrading to hapi v17 and using async/await instead of\ncallbacks, that work can be found in the `hapi-17-async-await` branch.\n\nThanks for your interest in my projects.\n\n- - - - - - - - - -\n\n# Aqua\n\nA website and user system starter.\n\n[![Build Status](https://travis-ci.org/jedireza/aqua.svg?branch=master)](https://travis-ci.org/jedireza/aqua)\n\n\n## Features\n\n - Universal front-end website\n   - Basic web pages ready to customize\n   - Contact page with form to email\n   - Account sign-up page\n   - Login pages including forgot and reset password\n - My account area\n   - Stub dashboard ready to customize\n   - Settings screen to update contact info and login credentials\n - Admin back office\n   - Stub dashboard ready to customize\n   - Manage accounts, admins, groups and users\n   - Use groups (like departments) for shared permissions\n   - Granular permissions override group permissions\n\n\n## Live demo\n\n| url                            | username | password |\n|:------------------------------ |:-------- |:-------- |\n| https://getaqua.herokuapp.com/ | root     | root     |\n\n\n## Technology\n\nServer side, Aqua is built with the [hapi](https://hapijs.com/) framework.\nWe're using [MongoDB](http://www.mongodb.org/) as a data store.\n\nThe front-end is built with [React](https://github.com/facebook/react). We use\n[Redux](https://github.com/reactjs/redux) as our state container. Client side\nrouting is done with [React Router](https://github.com/reactjs/react-router).\nWe're using [Gulp](http://gulpjs.com/) for the build system.\n\nWe use [`bcrypt`](https://github.com/ncb000gt/node.bcrypt.js) for hashing\nsecrets. If you have issues during installation related to `bcrypt` then [refer\nto this wiki\npage](https://github.com/jedireza/aqua/wiki/bcrypt-Installation-Trouble).\n\n\n## API only\n\nIf you don't use React and/or would rather bring your own front-end, checkout\n[Frame](https://github.com/jedireza/frame). It's just the HTTP API parts of Aqua.\n\n\n## Installation\n\n```bash\n$ git clone git@github.com:jedireza/aqua.git\n$ cd aqua\n$ npm install\n```\n\n\n## Configuration\n\nSimply edit `config.js`. The configuration uses\n[`confidence`](https://github.com/hapijs/confidence) which makes it easy to\nmanage configuration settings across environments. __Don't store secrets in\nthis file or commit them to your repository.__\n\n__Instead, access secrets via environment variables.__ We use\n[`dotenv`](https://github.com/motdotla/dotenv) to help make setting local\nenvironment variables easy (not to be used in production).\n\nSimply copy `.env-sample` to `.env` and edit as needed. __Don't commit `.env`\nto your repository.__\n\n\n## First time setup\n\n__WARNING__: This will clear all data in the following MongoDB collections if\nthey exist: `accounts`, `adminGroups`, `admins`, `authAttempts`, `sessions`,\n`statuses`, and `users`.\n\n```bash\n$ npm run first-time-setup\n\n# \u003e aqua@0.0.0 first-time-setup /home/jedireza/projects/aqua\n# \u003e node first-time-setup.js\n\n# MongoDB URL: (mongodb://localhost:27017/aqua)\n# Root user email: jedireza@gmail.com\n# Root user password:\n# Setup complete.\n```\n\n\n## Running the app\n\n```bash\n$ npm start\n\n# \u003e aqua@0.0.0 start /Users/jedireza/projects/aqua\n# \u003e gulp react \u0026\u0026 gulp\n\n# [23:41:44] Using gulpfile ~/projects/aqua/gulpfile.js\n# ...\n```\n\nNow you should be able to point your browser to http://127.0.0.1:8000/ and see\nthe welcome page.\n\n[`nodemon`](https://github.com/remy/nodemon) watches for changes in server code\nand restarts the app automatically. [`gulp`](https://github.com/gulpjs/gulp) and\n[`webpack`](https://github.com/webpack/webpack) watch the front-end files and\nre-build those automatically too.\n\nWe also pass the `--inspect` flag to Node so you have a debugger available.\nWatch the output of `$ npm start` and look for the debugging URL and open it in\nChrome. It looks something like this:\n\n`chrome-devtools://devtools/remote/serve_file/@62cd277117e6f8ec53e31b1be58290a6f7ab42ef/inspector.html?experiments=true\u0026v8only=true\u0026ws=localhost:9229/node`\n\n\n## Running in production\n\n```bash\n$ node server.js\n```\n\nUnlike `$ npm start` this doesn't watch for file changes. Also be sure to set\nthese environment variables in your production environment:\n\n - `NODE_ENV=production` - This is important for many different optimizations,\n   both server-side and with the front-end build files.\n - `NPM_CONFIG_PRODUCTION=false` - This tells `$ npm install` to not skip\n   installing `devDependencies`, which we need to build the front-end files.\n\n\n## Have a question?\n\nAny issues or questions (no matter how basic), open an issue. Please take the\ninitiative to read relevant documentation and be proactive with debugging.\n\n - There are some guides in [the wiki](https://github.com/jedireza/aqua/wiki)\n - Read through [previously asked\n   questions](https://github.com/jedireza/aqua/issues?q=label%3Aquestion%20)\n\n\n## Want to contribute?\n\nContributions are welcome. If you're changing something non-trivial, you may\nwant to submit an issue before creating a large pull request.\n\n\n## Running tests\n\n[Lab](https://github.com/hapijs/lab) is part of the hapi ecosystem and what we\nuse to write all of our tests.\n\n```bash\n$ npm test\n\n# \u003e aqua@0.0.0 test /Users/jedireza/projects/aqua\n# \u003e lab -t 100 -S -T ./test/lab/transform -L --lint-options '{\"extensions\":[\".js\",\".jsx\"]}' ./test/lab/client-before.js ./test/client/ ./test/lab/client-after.js ./test/server/ ./test/lab/server-after.js ./test/misc/\n\n#  ..................................................\n#  ..................................................\n#  ..................................................\n#  ..................................................\n#  ..................................................\n#  ..................................................\n#  ..................................................\n#  ..................................................\n#  ..................................................\n#  ..................................................\n#  ..................................................\n#  ..................................................\n#  ..................................................\n#  ..................................................\n#  ..................................................\n#  ..................................................\n#  ..................................................\n#  ...............\n\n# 865 tests complete\n# Test duration: 6382 ms\n# No global variable leaks detected\n# Coverage: 100.00%\n# Linting results: No issues\n```\n\n### Targeted tests\n\nIf you'd like to run a specific test or subset of tests you can use the\n`test-client` and `test-server` scripts included in the `package.json` file.\n\nYou specificy the path(s) via the `TEST_TARGET` environment variable like:\n\n```bash\n$ TEST_TARGET=test/server/web/main.js npm run test-server\n\n# or\n\n$ TEST_TARGET=test/client/actions/api.js npm run test-client\n```\n\n\n## License\n\nMIT\n\n\n## Don't forget\n\nWhat you build with Aqua is more important than Aqua.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjedireza%2Faqua","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjedireza%2Faqua","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjedireza%2Faqua/lists"}