{"id":21232489,"url":"https://github.com/tugascript/nestjs-blog","last_synced_at":"2025-07-10T17:31:14.866Z","repository":{"id":41091489,"uuid":"497323664","full_name":"tugascript/nestjs-blog","owner":"tugascript","description":"Organizational blog made with NestJS, GraphQL and Mikro-ORM.","archived":true,"fork":false,"pushed_at":"2023-04-17T10:22:21.000Z","size":3246,"stargazers_count":7,"open_issues_count":12,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-07-06T16:12:34.637Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tugascript.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":"2022-05-28T13:19:26.000Z","updated_at":"2024-06-28T00:33:50.000Z","dependencies_parsed_at":"2023-02-18T10:01:25.632Z","dependency_job_id":null,"html_url":"https://github.com/tugascript/nestjs-blog","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":"tugascript/nestjs-graphql-fastity-template","purl":"pkg:github/tugascript/nestjs-blog","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tugascript%2Fnestjs-blog","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tugascript%2Fnestjs-blog/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tugascript%2Fnestjs-blog/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tugascript%2Fnestjs-blog/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tugascript","download_url":"https://codeload.github.com/tugascript/nestjs-blog/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tugascript%2Fnestjs-blog/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264618972,"owners_count":23638380,"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-20T23:52:20.236Z","updated_at":"2025-07-10T17:31:12.526Z","avatar_url":"https://github.com/tugascript.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# NestJS GraphQL Blog Back-End\n\n## Description\n\nThe back-end of my personal blog made with NestJS \u0026 GraphQL.\n\n## Architecture\n\nThis project is divided into three main entities/classes:\n\n* **Users**: the users of the blog, which are divided into admins, publishers and normal users.\n* **Posts**: the posts of the blog.\n* **Series**: the series of a given group of blog posts.\n* **Comments**: the comments, or user interaction with the blog posts.\n\nThe posts are related to the series by a many-to-many-to-many relationship, with tags as an intermediate\ntable.\nIt follows a team blog approach were there can be multiple publishers and admins, so it's perfect for a team\nas well as a single individual.\nIn terms of table relationships apart from some exceptions they are loaded by dataloaders, even the paginated\nrelationships.\n\n## Installation\n\n```bash\n$ yarn install\n```\n\n## Database Migrations\n\n```bash\n# creation\n$ yarn migrate:create\n# update\n$ yarn migrate:update\n```\n\n## Running the app\n\n```bash\n# production mode\n$ yarn start\n\n# watch mode\n$ yarn start:dev\n\n# debug mode\n$ yarn start:debug\n```\n\n## Unit Testing\n\n### BEFORE EACH TEST (Individual or All):\n\n- Check if NODE_ENV is not production\n- Remove the current test.db\n- Create a new test.db\n\n```bash\n# remove test.db\n$ rm test.db\n# create a new test.db\n$ yarn migrate:create\n```\n\n### All tests:\n\n```bash\n# unit tests\n$ yarn run test  --detectOpenHandles\n```\n\n### Individual test:\n\n```bash\n# unit tests\n$ yarn run test service-name.service.spec.ts --detectOpenHandles\n```\n\n## License\n\nThis project is [GNU GPLv3 licensed](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftugascript%2Fnestjs-blog","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftugascript%2Fnestjs-blog","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftugascript%2Fnestjs-blog/lists"}