{"id":19852522,"url":"https://github.com/thesoftwarehouse/express-boilerplate","last_synced_at":"2025-04-05T18:09:17.084Z","repository":{"id":37074212,"uuid":"308368689","full_name":"TheSoftwareHouse/express-boilerplate","owner":"TheSoftwareHouse","description":"Boilerplate for setting up express.js applications","archived":false,"fork":false,"pushed_at":"2024-08-01T06:29:21.000Z","size":1938,"stargazers_count":227,"open_issues_count":5,"forks_count":73,"subscribers_count":19,"default_branch":"main","last_synced_at":"2025-03-29T17:07:46.559Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","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/TheSoftwareHouse.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-10-29T15:21:17.000Z","updated_at":"2025-03-26T09:42:25.000Z","dependencies_parsed_at":"2023-02-18T08:31:16.875Z","dependency_job_id":"4a543d4f-d6e3-4ae1-b94e-aa2b02847c0a","html_url":"https://github.com/TheSoftwareHouse/express-boilerplate","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheSoftwareHouse%2Fexpress-boilerplate","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheSoftwareHouse%2Fexpress-boilerplate/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheSoftwareHouse%2Fexpress-boilerplate/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheSoftwareHouse%2Fexpress-boilerplate/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TheSoftwareHouse","download_url":"https://codeload.github.com/TheSoftwareHouse/express-boilerplate/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247378149,"owners_count":20929297,"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":[],"created_at":"2024-11-12T14:03:16.350Z","updated_at":"2025-04-05T18:09:17.058Z","avatar_url":"https://github.com/TheSoftwareHouse.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n \u003cimg src=\"data/logo.svg\" alt=\"\" /\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n   Current travis build:\n  \u003ca href=\"https://travis-ci.com/TheSoftwareHouse/express-boilerplate\"\u003e\u003cimg src=\"https://travis-ci.com/TheSoftwareHouse/express-boilerplate.svg?branch=master\" alt=\"build status\" height=\"18\"\u003e\u003c/a\u003e\n  \u0026emsp;\n\u003c/p\u003e\n\n##\n\nA highly scalable and a focus on performance and best practices boilerplate code for Nodejs and TypeScript based web applications.\n\nStart a new application in seconds!\n\n##\n\n### Features\n\n- Quick scaffolding\n\n  Create actions, routes, and models - right from the CLI using Plop micro-generator framework.\n\n- TypeScript\n\n  The best way to write modern applications. Code is easier to understand. It is now way more difficult to write invalid code as was the case in dynamically typed languages\n\n- Dependency injection\n\n  DI is a central part of any nontrivial application today and is the core of this project.\n\n- Static code analysis\n\n  Focus on writing code, not formatting! Code formatter and linter keeps the code clean which makes work and communication with other developers more effective!\n\n**Note**\nIf you have discovered a bug or have a feature suggestion, feel free to create an issue on [Github](https://github.com/TheSoftwareHouse/express-boilerplate/issues).\n\nDon't forget to star or fork this if you liked it.\n\n##\n\n### Configuration\n\nAfter checkout of a repository, please perform the following steps in exact sequence:\n\n1. Copy docker-compose.override\n    ```\n    $ cp docker-compose.override.yml.dist docker-compose.override.yml\n    ```\n\n2. Create `.env` file from `.env.dist`\n    ```\n    $ cp .env.dist .env\n    ```\n\n    Remember to fill up required values in `.env`\n\n3. Run `npm i`\n\n4. Run `npm run docker-build`\n\n5. Run watch - `npm run watch`\n\n##\n\n### Dev setup\n\nThis app is fully dockerized, so in order to use it you have to have docker and docker-compose installed. What's more you need to have npm in order to run npm scripts.\n\n1. In order to run the whole app type:\n\n    ```\n    npm run start\n    ```\n\n2. In order to watch files for dev purpose type:\n\n    ```\n    npm run watch\n    ```\n\n3. If you need to close all containers run:\n\n    ```\n    npm run down\n    ```\n\n4. To get into Docker container's shell:\n\n    ```\n    npm run shell\n    ```\n\n##\n\n### SonarQube configuration\n\nBefore deployment, please ensure that a related SonarQube project has been created. After that set proper repository variables (`SONAR_TOKEN` and `SONAR_HOST_URL`) and properties in `sonar-project.properties` file. \n\n##\n\n### Code generation\n\nWe're using Plop for routes, models, actions, graphql (queries and mutations), commands and handlers generation.\n\n```\nnpm run plop\n```\n\n##\n\n### Code style\n\nWe're using Prettier and ESLint to keep code clean. In order to reformat/check code run:\n\n```\nnpm run lint\nnpm run format\n```\n\n##\n\n### Database migrations\n\nMigrations should be stored inside migrations directory.\n\nEasiest way to create a migration is to generate it from entity/ies:\n\n```\nnpm run generate-migration\n```\n\nThis should generate a migration for all connected entities.\n\n##\n\n#### Adminer setup\n\nAdminer is configured in `docker-compose.override.yml` and should work out of the box on port 8080. To login to adminer use the following values:\n```\nDatabase type: postgres\nServer: postgres\nUser: postgres\nPassword: password\nDatabase: app\n```\n\nOf course, if any of this is changed via configuration or otherwise, then these changes must be reflected here as well.\n\n##\n\n### GraphQL\nBoilerplate has GraphQL support. Apollo server runs as a middleware and should be available locally under:\n```\nhttp://localhost:1337/graphql\n```\n\nTo add new query/mutation run relevant `plop` commands and then:\n\n1. Modify `schema.gql` under `graphql/schema.gql`\n2. Run codegen: `npm run generate-schema`\n3. Restart watcher / API\n\n##\n\n### Debugging\n\n#### VS Code\n\nThere is `launch.json` configuration inside `editors/vsc` directory. Just copy it and create new debugger to make it work with vsc :) \n\n##\n\n### Tests\n\nThere are two types of tests:\n\n- integration: `npm run integration`\n- units: `npm run units`\n\n##\n\n### **Issues:**\n\nIf you notice any issues while using, let as know on **[github](https://github.com/TheSoftwareHouse/express-boilerplate/issues)**.\nSecurity issues, please sent on \u003ca href=\"mailto:security.opensource@tsh.io\"\u003e\u003cb\u003eemail\u003c/b\u003e\u003c/a\u003e\n\n### **You may also like our other projects:**\n\n- **[RAD Modules](https://github.com/TheSoftwareHouse/rad-modules)**\n- **[RAD Modules Tools](https://github.com/TheSoftwareHouse/rad-modules-tools)**\n- **[Serverless Boilerplate](https://github.com/TheSoftwareHouse/serverless-boilerplate)**\n- **[Kakunin](https://github.com/TheSoftwareHouse/Kakunin)**\n- **[Babelsheet-js](https://github.com/TheSoftwareHouse/babelsheet-js)**\n- **[Fogger](https://github.com/TheSoftwareHouse/fogger)**\n\n### **About us:**\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://tsh.io/pl\"\u003e\u003cb\u003eThe Software House\u003c/b\u003e\u003c/a\u003e\n  \u0026emsp;\n  \u003cimg src=\"data/tsh.png\" alt=\"tsh.png\" width=\"50\" /\u003e\n\u003c/p\u003e\n\n### License\n\n[![license](https://img.shields.io/badge/license-MIT-4dc71f.svg)](https://raw.githubusercontent.com/TheSoftwareHouse/express-boilerplate/main/LICENSE)\n\nThis project is licensed under the terms of the [MIT license](/LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthesoftwarehouse%2Fexpress-boilerplate","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthesoftwarehouse%2Fexpress-boilerplate","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthesoftwarehouse%2Fexpress-boilerplate/lists"}