{"id":18336624,"url":"https://github.com/mmintel/rawr","last_synced_at":"2025-04-09T19:56:05.233Z","repository":{"id":54515709,"uuid":"335400677","full_name":"mmintel/rawr","owner":"mmintel","description":null,"archived":false,"fork":false,"pushed_at":"2021-02-14T16:45:24.000Z","size":301,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-15T12:20:35.384Z","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":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mmintel.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}},"created_at":"2021-02-02T19:29:07.000Z","updated_at":"2021-02-14T16:45:27.000Z","dependencies_parsed_at":"2022-08-13T18:20:47.153Z","dependency_job_id":null,"html_url":"https://github.com/mmintel/rawr","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/mmintel%2Frawr","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mmintel%2Frawr/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mmintel%2Frawr/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mmintel%2Frawr/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mmintel","download_url":"https://codeload.github.com/mmintel/rawr/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248103911,"owners_count":21048245,"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-05T20:08:25.582Z","updated_at":"2025-04-09T19:56:05.208Z","avatar_url":"https://github.com/mmintel.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Rawr\n\n## Architecture\n```\n+-- core // contains shared code, e.g. definitions\n|   +-- aggregate-root // mixed DDD and CQRS aggregate root\n|   +-- entity // base class for entities after DDD\n|   +-- factory // base class for factories after DDD\n|   +-- unique-entity-id // value object for uuids used in entities\n|   +-- value-object // base class for value objects after DDD\n+-- modules // contains nestjs modules for IoC\n|   +-- app // wire up the whole app\n|   +-- module\n|   |   +-- application // application layer after DDD, contains application logic\n|   |   |   +-- commands // CQRS command handlers\n|   |   |   +-- events // CQRS event handlers\n|   |   |   +-- queries // CQRS query handlers\n|   |   +-- domain // domain layer after DDD, contains domain knowdledge\n|   |   |   +-- events // Domain events\n|   |   |   +-- commands // Domain commands\n|   |   |   +-- queries // Domain queries\n|   |   |   +-- exceptions // Domain exceptions\n|   |   |   +-- dto //  defines output for client\n|   |   |   +-- entity //  domain entity after DDD\n|   |   |   +-- mapper //  transforms data\n|   |   |   +-- repository //  defines API for repositories\n|   |   |   +-- factory //  manages entity creation\n|   |   +-- infrastructure // infra layer after DDD, contains concrete implementations\n|   |   |   +-- typeorm //  typeorm specific files\n|   |   |   |   +-- entity //  typeorm entities, don't mix up with domain entity\n|   |   |   |   +-- mapper //  implements concrete mapper, especially for persistence\n|   |   |   |   +-- repository //  implements concrete typeorm repository\n|   |   +-- interface // application layer after DDD\n+-- main // starts server\n+-- test // contains global tessts, e.g. e2e tests\n```\n\n## Installation\n\n```bash\n$ yarn\n```\n\n## Running the app\n### Docker\n```bash\n# start development\n$ yarn start:docker\n\n# start detached\n$ docker-compose up -d\n\n# rebuild, e.g. after new packages\n$ docker-compose up --build -V\n\n# remove postgres data\n$ docker-compose exec db bash rm -rf /var/lib/postgresql/data\n```\n\n### Manually\n```bash\n# development\n$ yarn run start\n\n# watch mode\n$ yarn run start:dev\n\n# production mode\n$ yarn run start:prod\n```\n\n## Test\n### Docker\n```bash\n# run e2e tests\n$ yarn test:e2e:docker\n\n# clear test db\n$ yarn test:e2e:docker:clear\n```\n\n### Manually\n```bash\n# unit tests\n$ yarn run test\n\n# e2e tests\n$ yarn run test:e2e\n\n# test coverage\n$ yarn run test:cov\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmmintel%2Frawr","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmmintel%2Frawr","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmmintel%2Frawr/lists"}