{"id":16742362,"url":"https://github.com/urtuba/boilerplate","last_synced_at":"2026-04-08T11:32:15.465Z","repository":{"id":202941688,"uuid":"708423945","full_name":"urtuba/boilerplate","owner":"urtuba","description":"An Express api boilerplate to build any app from day 0. Minimal but complete.","archived":false,"fork":false,"pushed_at":"2025-09-20T16:46:34.000Z","size":663,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-03T16:21:05.139Z","etag":null,"topics":["babel","boilerplate","eslint","express","jest","nodejs","prettier","rest-api","supertest"],"latest_commit_sha":null,"homepage":"https://github.com/urtuba/boilerplate","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/urtuba.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-10-22T14:24:12.000Z","updated_at":"2025-06-08T22:48:26.000Z","dependencies_parsed_at":null,"dependency_job_id":"47a60a34-a9a0-4c02-a536-110f4d9b272c","html_url":"https://github.com/urtuba/boilerplate","commit_stats":null,"previous_names":["urtuba/boilerplate"],"tags_count":0,"template":true,"template_full_name":null,"purl":"pkg:github/urtuba/boilerplate","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/urtuba%2Fboilerplate","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/urtuba%2Fboilerplate/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/urtuba%2Fboilerplate/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/urtuba%2Fboilerplate/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/urtuba","download_url":"https://codeload.github.com/urtuba/boilerplate/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/urtuba%2Fboilerplate/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31554090,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-08T10:21:54.569Z","status":"ssl_error","status_checked_at":"2026-04-08T10:21:38.171Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["babel","boilerplate","eslint","express","jest","nodejs","prettier","rest-api","supertest"],"created_at":"2024-10-13T01:23:32.363Z","updated_at":"2026-04-08T11:32:15.434Z","avatar_url":"https://github.com/urtuba.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Enhanced Express API Boilerplate\n\nElevate your application development experience with this enhanced Express API boilerplate. Designed to be both minimal and complete, it provides a solid foundation, streamlining your project right from the inception.\n\n## Quick Start\n\nFollow these steps to get started:\n\n1. **Clone the Repository:**\n\n   - Clone this repository to your local machine to have your own version of the boilerplate. Use the command `git clone \u003crepository-url\u003e`.\n\n2. **Install Dependencies:**\n\n   - Execute `npm install` to install all the necessary dependencies to get you started.\n\n3. **Local Development:**\n\n   - Use `npm run dev` to start the local development server. It's time to build something amazing!\n\n4. **Run Tests:**\n   - Make sure your code is robust and works as expected by running tests with `npm run test`.\n\n## Docker Support\n\nThis project includes Docker support for containerized deployment with modern best practices.\n\n### Building the Docker Image\n\n```bash\n# Enable BuildKit for faster builds\nexport DOCKER_BUILDKIT=1\n\n# Build the Docker image\ndocker build -t express-api .\n```\n\n### Running the Container\n\n```bash\n# Basic run\ndocker run -p 3000:3000 express-api\n\n# With environment variables\ndocker run -p 3000:3000 -e NODE_ENV=production -e MONGO_URI=mongodb://localhost:27017/your_db_name express-api\n\n# With custom command arguments\ndocker run -p 3000:3000 express-api --your-custom-args\n```\n\n## Swagger Documentation\n\nThe API documentation is available at `/api-docs` and is automatically configured based on the environment:\n- Development: Uses source files for real-time documentation updates\n- Production: Uses compiled files for optimized performance\n\n## Features\n\n### Express API\n\nEmbark on your development journey with a pre-configured Express application and a server. The separation of the `buildApp` function ensures you test your app, not the 3rd party middlewares. It also offers additional configuration options, including:\n\n- Executing code after app creation but before the server starts.\n- Running another server instance with the same application.\n\n### Testing\n\nEquipped with `jest` and `supertest`, this boilerplate supports both unit and e2e testing. Sample tests are included, but you can delve into the [Jest documentation](https://jestjs.io/docs/getting-started) to create tests as per your needs. A jest coverage report is included to keep track of your test coverages.\n\nThe project includes MongoDB integration for testing, with automatic setup and teardown of database connections. This ensures your tests run with a real database connection, making them more reliable.\n\n### Continuous Integration\n\nGitHub workflow is configured to run tests automatically with MongoDB integration. The workflow:\n- Runs on push to main branch\n- Runs on pull request creation and updates\n- Sets up a MongoDB service\n- Installs dependencies\n- Runs tests\n\n### Environment Management\n\nExperience seamless development with `nodemon` and `babel`. The added environment utility ensures you never face issues with missing required environment variables; it notifies and stops execution if any are missing. Expand and manage your environment variables and controls by enhancing the `src/utils/environment.js`.\n\n```js\nimport ENV from 'environment'\n\n// Example usage\nif (ENV.isTest) {\n  // Code specific to the test environment\n}\n```\n\n### Coding Style\n\nMaintain a clean and consistent codebase with the enforced coding style powered by Biome.js. The project includes:\n\n- Pre-configured Biome settings\n- Pre-commit hooks to check code quality\n- Automatic linting and formatting\n\nUse these commands to maintain code quality:\n```bash\n# Check for linting issues\nnpm run lint\n\n# Fix linting issues\nnpm run lint:fix\n\n# Format code\nnpm run format\n```\n\nThe pre-commit hook automatically checks your code for errors before allowing commits, ensuring high-quality code in your repository. Warnings are reported but don't block commits, while errors must be fixed before the code can be committed.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Furtuba%2Fboilerplate","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Furtuba%2Fboilerplate","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Furtuba%2Fboilerplate/lists"}