{"id":24767132,"url":"https://github.com/tsmean/backend","last_synced_at":"2025-10-11T17:30:25.372Z","repository":{"id":85295223,"uuid":"87124550","full_name":"tsmean/backend","owner":"tsmean","description":"All backend modules of the tsmean seed bundled together","archived":false,"fork":false,"pushed_at":"2017-07-24T16:30:46.000Z","size":192,"stargazers_count":8,"open_issues_count":0,"forks_count":3,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-04T19:21:07.333Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://www.tsmean.com","language":"TypeScript","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/tsmean.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}},"created_at":"2017-04-03T21:55:16.000Z","updated_at":"2018-12-19T06:29:40.000Z","dependencies_parsed_at":"2023-03-02T23:00:17.180Z","dependency_job_id":null,"html_url":"https://github.com/tsmean/backend","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/tsmean/backend","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tsmean%2Fbackend","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tsmean%2Fbackend/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tsmean%2Fbackend/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tsmean%2Fbackend/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tsmean","download_url":"https://codeload.github.com/tsmean/backend/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tsmean%2Fbackend/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279008116,"owners_count":26084396,"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-11T02:00:06.511Z","response_time":55,"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":"2025-01-29T00:52:20.778Z","updated_at":"2025-10-11T17:30:25.368Z","avatar_url":"https://github.com/tsmean.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Build Status](https://travis-ci.org/tsmean/backend.svg?branch=master)](https://travis-ci.org/tsmean/backend)\n\n# Foreword\n\nThis is the backend for the TSMEAN stack.\nI have expanded the definition of the \"M\" in MEAN,\nto mean either \"Mongo\" or \"MySQL\". The backend has\nan implementation for both databases. Which one is used\nis determined in `properties/..properties.json` file as the\ntype property, default is Mongo.\n\nThe backend is built in a fully modular manner. Currently there are:\n\n- Mongo Module (independent)\n- MySQL Module (independent)\n- Db-Adapter Module (builds on mongo and mysql modules)\n- Auth Module (builds on db-adapter module)\n- Router Module (builds on auth-module and db-adapter module)\n- Main Module (straps everything together)\n\nThe modules are packaged via npm and access each other via the\nnpm registry.\n\n\n# Installation\n\n## Prerequisits\n\n- node (v6 or v8) \u0026 npm (v3 or v5)\n- git\n- ts-node (`npm install -g ts-node`)\n\n## Setup\n```\ngit clone https://github.com/tsmean/backend.git project-name-backend\ncd project-name-backend\nnpm install\n```\n\nThis will execute `install.sh`.\nYou need to have git, npm and yarn installed to make this work and\nit will only work on linux / mac.\n\n# Run\nMake sure you have typescript installed, then run:\n```\nnpm start\n```\nBy default, a server at localhost:4242 is started.\n\n# Test\n```\nnpm test\n```\n\nYou can also run the tests of the modules independently by\n`cd module-name` and `npm test`.\n\nNote: If you're using an IDE such as IntelliJ, you can also run single files\ndirectly from the IDE! See https://www.jetbrains.com/help/idea/2017.1/run-debug-configuration-mocha.html\n\n\n# Development\n\nAs mentioned, the seed has a modular design and the modules access each\nother via npm. You have now two options: 1) Switch out all the absolute\npackage references with relative references. 2) Follow the same pattern\nwith publish / pull on npm. To do so, I would recommend that you register an\norganization on npm (could be `yourname`) and switch out `@tsmean`\nwith `@yourorganizationname` in the package.json in all modules.\nLike this you can follow the same highly modular development principles.\n\nIf you go for publishing to npm, here's the workflow:\n\n1. make your changes\n2. git commit and push them\n3. `npm version patch` / minor / major according to semvar\n4. `yarn upgrade` in the modules where you need the updates.\n\nI know it's a bit of an overhead compared to writing\neverything with references, but modularity is such a key\nconcept, that I think you will thank me later!\n\n# Deployment\n\nI have configured a small `deploy.sh` script\n(doing it with typescript was horrible, so I switched back to a good old shell script).\nThat way you should be able to deploy on any remote (ubuntu) instance easily.\nJust change the `server` variable in the script\nand run\n`./deploy.sh` or `./deploy.sh test` for a dry run\nexecuting all unit tests reomtely.\n\n\n# See it in action\n\nYou can test the interface at http://demo.tsmean.com:4242, e.g.\nhttp://demo.tsmean.com:4242/api/v1/heroes.\n\n\n\n# Database\nWhen you first run this project,\nit will connect to a remote Mongo instance I have setup so this project can be run with minimal overhead.\nHowever, I advise you to create your own `\u003cproject\u003e/properties/local.properties.json`\nand `\u003cproject\u003e/properties/test.properties.json`,\nsince the remote mongo instance is cleaned on a regular basis.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftsmean%2Fbackend","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftsmean%2Fbackend","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftsmean%2Fbackend/lists"}