{"id":19134469,"url":"https://github.com/azerothcore/universal-node","last_synced_at":"2025-10-06T06:17:17.506Z","repository":{"id":140478568,"uuid":"172092757","full_name":"azerothcore/universal-node","owner":"azerothcore","description":"Boilerplate for Universal NodeJS server","archived":false,"fork":false,"pushed_at":"2019-04-20T14:48:00.000Z","size":194,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-09-14T18:48:22.704Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://azerothcore.github.io/universal-node/","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/azerothcore.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}},"created_at":"2019-02-22T15:52:25.000Z","updated_at":"2022-04-29T05:33:06.000Z","dependencies_parsed_at":null,"dependency_job_id":"b6ce4cc4-845f-41a4-91e9-3bf403fbe9c7","html_url":"https://github.com/azerothcore/universal-node","commit_stats":{"total_commits":32,"total_committers":2,"mean_commits":16.0,"dds":0.03125,"last_synced_commit":"0ab7862fba281beaebaa8458b241dd29845d54bf"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/azerothcore/universal-node","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/azerothcore%2Funiversal-node","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/azerothcore%2Funiversal-node/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/azerothcore%2Funiversal-node/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/azerothcore%2Funiversal-node/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/azerothcore","download_url":"https://codeload.github.com/azerothcore/universal-node/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/azerothcore%2Funiversal-node/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278566833,"owners_count":26007842,"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-06T02:00:05.630Z","response_time":65,"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":[],"created_at":"2024-11-09T06:26:40.628Z","updated_at":"2025-10-06T06:17:17.480Z","avatar_url":"https://github.com/azerothcore.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# HW Universal Node\n\nThis is a boilerplate project that allows you to start creating an **Universal NodeJS Server**.\nIt uses **Sequelize** and **Apollo Express server for GraphQL**, automatically connected by **sequelize-graphql-schema** library.\n\nIt allows you to have a REST capable server with free graphql APIs for your database! Letting you to focus on writing sequelize models \nand applying your security/logic middlewares.\n\nNo need to write SQL, schemas, queries and mutations!* \n\n\n* If you need more advanced queries/mutations you can overwrite/extends autogenerated methods.\n\n**Moreover it's preconfigured to have:**\n+ path aliases\n+ full-working intellisense\n+ debug configurations\n+ modular directory structure\n+ formatting rules and settings for visual studio code\n+ automatic installation of missing npm modules at start\n+ GraphQL and REST ready\n+ it works great with: [HW Universal Client](http://hw-core.github.io/universal-pwa/)\n  \nand many other useful features allowing you to develop at the best!\n\nSo please, use VSCode, try to be [DRY](https://en.wikipedia.org/wiki/Don%27t_repeat_yourself), comment your code with [JSDocs](http://usejsdoc.org/),\nlearn to use Javascript ES6 best practices and patterns!\n\n**Note:** we're using 4 spaces (instead of 2 that is common in javascript because of [callback hell](http://callbackhell.com/)) because it discourages nesting. In fact reducing the spaces to fit more levels in is a counterproductive idea. Use async/await as much as possible. \n\n### How to install\n\n1. npm install\n2. create a copy of /src/conf/conf.dist.js and rename in conf.js (do not delete or rename the .dist.js file directly!)\n3. create a copy of /src/conf/database.dist.js and rename in database.js (do not delete or rename the .dist.js file directly!)\n4. Configure your conf.js and database.js\n\n### How to develop\n\nThere are various tools inside this repo, however in most cases you just need to edit following files:\n\n1. **package.json:** app name, version etc.\n2. **conf/**: runtime configuration files\n3. **src/** sources to implement your logic\n4. **optional:** other /apps/ configurations\n\n### How to run (development):\n\n1. npm run start\n\n## Directory Structure\n\nThis project follows partially the [hw-core directory structure](http://hw-core.github.io/directory-structure/) on (CRA folder structure)[https://facebook.github.io/create-react-app/docs/folder-structure]\n\nWith following specs:\n\n* apps: tools used by the project for specific tasks \n* conf: platform configuration files\n* deps: internal reusable dependencies **(they can be shared between projects)**\n* modules: optional and pluggable modules to extend app functionalities\n* src: application sources\n  * database: sequelize migrations and seeders  \n  * server: server boot files\n  * system: models/entities and apis\n\nFor internal deps and modules we're using [subrepo](https://github.com/ingydotnet/git-subrepo) instead of subtree/submodule that\nare not enough to both include a git based dependency and working on it at the same time. \nYou can check the app.sh script to see how to sync your dependencies.\n\n## Folder aliases:\n\nWe're monkey-patching the CRA via [craco](https://github.com/sharegate/craco/blob/master/README.md) library allowing us to \ncreate some useful path alias to avoid relative path hell: ( ../../ )\n\nSo you can use paths defined in cra-config.js file:\n\n        \"@this\": \".\", // this is the root alias\n        \"@hw-core\": '/deps/hw-core'\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fazerothcore%2Funiversal-node","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fazerothcore%2Funiversal-node","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fazerothcore%2Funiversal-node/lists"}