{"id":14972500,"url":"https://github.com/jamg44/nodetyped","last_synced_at":"2025-10-04T05:58:05.734Z","repository":{"id":57159879,"uuid":"55898006","full_name":"jamg44/NodeTyped","owner":"jamg44","description":"Node.js Express Startup Seed with ES6, Typescript, SCSS, EJS, Nodemon, Bootstrap 4, TSLint, TypeDoc","archived":false,"fork":false,"pushed_at":"2018-06-05T18:09:20.000Z","size":185,"stargazers_count":71,"open_issues_count":0,"forks_count":17,"subscribers_count":12,"default_branch":"master","last_synced_at":"2025-08-11T00:27:00.698Z","etag":null,"topics":["bootstrap4","ejs","express","jasmine","jsdoc","nodemon","scss","typescript"],"latest_commit_sha":null,"homepage":"","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/jamg44.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":"2016-04-10T12:34:21.000Z","updated_at":"2023-08-23T14:14:49.000Z","dependencies_parsed_at":"2022-09-10T23:30:38.031Z","dependency_job_id":null,"html_url":"https://github.com/jamg44/NodeTyped","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jamg44/NodeTyped","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jamg44%2FNodeTyped","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jamg44%2FNodeTyped/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jamg44%2FNodeTyped/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jamg44%2FNodeTyped/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jamg44","download_url":"https://codeload.github.com/jamg44/NodeTyped/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jamg44%2FNodeTyped/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278272336,"owners_count":25959524,"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","status":"online","status_checked_at":"2025-10-04T02:00:05.491Z","response_time":63,"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":["bootstrap4","ejs","express","jasmine","jsdoc","nodemon","scss","typescript"],"created_at":"2024-09-24T13:47:00.967Z","updated_at":"2025-10-04T05:58:05.713Z","avatar_url":"https://github.com/jamg44.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# NodeTyped\n\n\u003e A Node.js starter kit featuring ES6 with **Secuential Asynchrony (async/await)**,\n[Express](http://expressjs.com/) (Routing middlewares, Web, Api),\n[Typescript](http://www.typescriptlang.org/),\n[Mongoose](http://mongoosejs.com/),\n[SCSS](http://sass-lang.com/),\n[EJS](https://github.com/mde/ejs),\n[Nodemon](http://nodemon.io/),\n[Bootstrap 4](https://getbootstrap.com/),\n[TSLint](https://palantir.github.io/tslint/),\n[TypeDoc](https://github.com/TypeStrong/typedoc),\n.\n\n* Simple npm setup and maintenance, without grunt/gulp/webpack/...\n\n* Support for async/await\n\nExample middleware:\n\n```javascript\nasync function(req, res, next) {\n    let title = 'NodeTyped Express';\n    try {\n        let data = await readFile(file, 'utf-8');\n        res.render('index', { title: title, dump: data });\n    } catch (e) {\n        next(e);\n    }\n}\n```\n\n## Requirements\n\nMake sure **you have node version \u003e= 8.0**\n\n### Clone and Install dependencies\n\n```bash\n# clone the repo\n# --depth 1 removes all but one .git commit history\ngit clone --depth 1 https://github.com/jamg44/NodeTyped.git projectname\n\n# change directory to your new project\ncd projectname\n\n# install the repo dependencies with npm\nnpm install\n\n# start the server\nnpm run dev\n```\n\nIf you want to use mongoose models, start mongodb, check localConfig.js and:\n\n```bash\n# load sample products in database (defaults to 'test')\nnpm run loadMocks\n```\n\n\n## Develop\n\n### Watch mode\n\nYou can start the server in development mode (linter included) with:\n\n```bash\nnpm run dev\n```\n\nOpen the browser at:\n\n* http://localhost:3000\n\nStart MongoDB, run 'npm run loadMocks', and check:\n\n* http://localhost:3000/products\n* http://localhost:3000/apiv1/products\n* http://localhost:3000/apiv1/products/near/(meters)/lon/(lon)/lat/(lat)\n\nAs you save in your editor, the compiler will rebuild and restart the server.\n\n### Other commands\n\nRun the linter manually:\n\n```bash\nnpm run lint\n```\n\nClean temp folders:\n\n```bash\nnpm run clean\n```\n\nRun the tests:\n\n```bash\nnpm test\n```\n\nGenerate docs, the output will be in /doc folder:\n\n```bash\nnpm run doc\n```\n\n## Production / Integration\n\nTo run the project in a server you'll want to run the built code instead src version.\n\n```bash\n# deploy the repo to server and run\nnpm install\nnpm start\n```\n\n## Recommendations\n\n* To change project name update package.json\n\n```bash\n\"name\": \"project_name\", \u003c-----\n...\n\"dev\": \"tsc \u0026\u0026 DEBUG=project_name2:* ... \u003c-----\n```\n\n* All your functions should return promises for better use with async/await.\n\n```bash\nlet readFile = function(file, encoding) =\u003e {\n    return new Promise((resolve, reject) =\u003e {\n        fs.readFile(file, encoding, function(err, data) {\n            if (err) {\n                return reject(err);\n            }\n            resolve(data);\n        });\n    });\n};\n```\n\n## Roadmap (TODO)\n\n* API authentication with [JWT](https://jwt.io/)\n* Add cluster\n* User system (register, login, etc)\n* Add tests\n* Basic panel\n\n## License\n\n [MIT](/LICENSE)\n\nMade with ♡ by Javier Miguel González @javiermiguelg\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjamg44%2Fnodetyped","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjamg44%2Fnodetyped","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjamg44%2Fnodetyped/lists"}