{"id":15040565,"url":"https://github.com/jiayisheji/jianshu","last_synced_at":"2025-04-07T11:05:41.610Z","repository":{"id":17066023,"uuid":"81085547","full_name":"jiayisheji/jianshu","owner":"jiayisheji","description":"仿简书nx+nodejs+nestjs6+express+mongodb+angular8+爬虫","archived":false,"fork":false,"pushed_at":"2023-01-24T09:27:26.000Z","size":100075,"stargazers_count":310,"open_issues_count":19,"forks_count":78,"subscribers_count":36,"default_branch":"master","last_synced_at":"2025-03-31T09:06:32.378Z","etag":null,"topics":["angular","api","app","cqrs","crud","ddd","express","jwt","mongodb","mongoose","nestjs","nodejs","nx","passport","redis","restful-api","rxjs","swagger","typescript"],"latest_commit_sha":null,"homepage":"","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/jiayisheji.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":"2017-02-06T12:36:09.000Z","updated_at":"2025-01-21T06:17:42.000Z","dependencies_parsed_at":"2023-02-13T19:48:09.737Z","dependency_job_id":null,"html_url":"https://github.com/jiayisheji/jianshu","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jiayisheji%2Fjianshu","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jiayisheji%2Fjianshu/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jiayisheji%2Fjianshu/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jiayisheji%2Fjianshu/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jiayisheji","download_url":"https://codeload.github.com/jiayisheji/jianshu/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247640463,"owners_count":20971557,"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":["angular","api","app","cqrs","crud","ddd","express","jwt","mongodb","mongoose","nestjs","nodejs","nx","passport","redis","restful-api","rxjs","swagger","typescript"],"created_at":"2024-09-24T20:44:44.812Z","updated_at":"2025-04-07T11:05:41.570Z","avatar_url":"https://github.com/jiayisheji.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Jianshu\n\nA simple application demonstrating [Angular](https://github.com/angular/angular) (SPA, SSR) the basic usage of permissions with [NestJS](https://github.com/nestjs/nest) (JWT, Passport, Github, User, Group, Permission) based on [jianshu](https://www.jianshu.com) template.\n\n## Related Technology\n\n- [@nrwl/nx](https://github.com/nrwl/nx) - Nx is an open platform with plugins for many modern tools and frameworks.\n- [NestJS](https://github.com/nestjs/nest) - a JS backend framework providing architecture out of the box with a syntax similar to Angular\n- [Angular](https://github.com/angular/angular) - a JS frontend framework created by Google\n- [Angular Universal](https://github.com/angular/universal) - a JS frontend framework created by Google\n- [Material-ui](https://material.angular.io/) - Material Design components for Angular\n- [TypeScript](https://github.com/Microsoft/TypeScript) - reactive extensions for JavaScript\n- [RxJS](https://github.com/Reactive-Extensions/RxJS) - superset of JS which compiles to JS, providing compile-time type checking\n- [MongoDB](https://github.com/mongodb/mongo) - a NoSQL database\n- [Mongoose](https://github.com/Automattic/mongoose) - MongoDB object modeling designed to work in an asynchronous environment\n- [TypeORM](https://github.com/typeorm/typeorm) - ORM for TypeScript and JavaScript (ES7, ES6, ES5). Supports MySQL, PostgreSQL, MariaDB, SQLite, MS SQL Server, Oracle, WebSQL databases.\n- [Redis](https://redis.io) - Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache, and message broker.\n- [Ioredis](https://github.com/luin/ioredis) - A robust, performance-focused and full-featured Redis client for Node.js.\n- [Passport](https://github.com/jaredhanson/passport) - a popular library used to implement JavaScript authentication\n- [JWT](https://jwt.io) - JSON Web Token (JWT) is a compact URL-safe means of representing claims to be transferred between two parties.\n- [Docker](https://www.docker.com) - Complete flexibility to run any Docker commands. Ship Better Code, Faster.\n\n## Features\n\n- Use the Mongoose(Typegoose) connect MongoDB\n- Use the Ioredis connect Redis\n- Use JWT for authentication\n- Support github authentication login\n- Super easy to install and start using the full-featured controllers and services\n- DB and service agnostic extendable CRUD controllers\n- Reach query parsing with filtering, pagination, sorting, relations, nested relations, cache, etc.\n- Framework agnostic package with query builder for a frontend usage\n- Query, path params and DTO validation included\n- Overriding controller methods with ease\n- Tiny config (including globally)\n- Additional helper decorators\n- Swagger documentation\n- Support Angular server rendering\n- Support Angular responsive presentation\n- Support Domain-Driven Design\n\n## Running the project\n\nThese instructions should be sufficient for one to get the project going on their local machine\n\n### Installing core dependencies\n\n- make sure you have [node.js](https://nodejs.org/en/download/) installed version 12.13+\n\n#### Local Installing DB dependencies\n\n- make sure you have [MongoDB](https://www.mongodb.com/) installed version 3.4+\n- make sure you have [Redis](https://redis.io/download) installed version 3.2+\n\n#### Docker Installing DB dependencies\n\n- make sure you have [Docker](https://www.docker.com/products/docker-desktop)\n\n### Cloning the github repository\n\nTo clone the project, run\n\n```bash\ngit clone https://github.com/jiayisheji/jianshu.git\n```\n\n### Installing the dependencies\n\nTo install the dependencies after you've cloned the project, go to its root folder and run\n\n```bash\ncd jianshu \u0026\u0026 npm install\n```\n\n### Setting environment variables\n\n```bash\ncp .env.example  .env\n```\n\n\u003e Modify the corresponding values as required\n\n### Starting the MongoDB and Redis\n\nOnce you start the database application, you are ready to run the server\n\nBoot according to your system\n\nNotice that the server uses MongoDB and Redis so we need to have a MongoDB and Redis instance running so the server can connect to it。\n\nIf you use Docker:\n\n```bash\ndocker-compose up -d\n```\n\n### Alternative commands\n\nIf you need to work on the frontend and backend parts at the same time, you can run\n\n```bash\nnpm start\n```\n\nThen, you can go to the Angular dev server at port 4200 and test server requests (to port 3000), we got a proxy to the backend\n\nIf you only need to work on the frontend, you can run\n\n```bash\nnpm run start client\n```\n\nAlternatively, if you only need to work on the backend, you can run\n\n```bash\nnpm run start server\n```\n\nKeeping in mind that you need to have the Angular app built and a MongoDB and Redis connection established\n\n## Documentation\n\n- [Angular Docs](https://angular.io/docs)\n- [NestJS Docs](https://docs.nestjs.com)\n- [Typescript Docs](http://www.typescriptlang.org/)\n- [Rxjs Docs](https://rxjs.dev/api)\n- [Mongoose Docs](https://mongoosejs.com/)\n- [Typegoose Docs](https://typegoose.github.io/typegoose/)\n- [Ioredis Docs](https://github.com/luin/ioredis/blob/master/API.md)\n- [Graphql Docs](https://graphql.org/)\n- [Passport Docs](http://www.passportjs.org/)\n- [JWT Docs](https://jwt.io/)\n- [Tutorial Docs](docs/README.md)\n\n## Support\n\nAny support is welcome. At least you can give us a star :star:\n\n## Browser Support\n\n| [\u003cimg src=\"https://raw.githubusercontent.com/alrra/browser-logos/master/src/chrome/chrome_48x48.png\" alt=\"Chrome\" width=\"24px\" height=\"24px\" /\u003e](http://godban.github.io/browsers-support-badges/) \u003cbr /\u003e Chrome | [\u003cimg src=\"https://raw.githubusercontent.com/alrra/browser-logos/master/src/firefox/firefox_48x48.png\" alt=\"Firefox\" width=\"24px\" height=\"24px\" /\u003e](http://godban.github.io/browsers-support-badges/) \u003cbr /\u003e Firefox | [\u003cimg src=\"https://raw.githubusercontent.com/alrra/browser-logos/master/src/edge/edge_48x48.png\" alt=\"IE / Edge\" width=\"24px\" height=\"24px\" /\u003e](http://godban.github.io/browsers-support-badges/) \u003cbr /\u003e IE / Edge | [\u003cimg src=\"https://raw.githubusercontent.com/alrra/browser-logos/master/src/safari/safari_48x48.png\" alt=\"Safari\" width=\"24px\" height=\"24px\" /\u003e](http://godban.github.io/browsers-support-badges/) \u003cbr /\u003e Safari | [\u003cimg src=\"https://raw.githubusercontent.com/alrra/browser-logos/master/src/opera/opera_48x48.png\" alt=\"Opera\" width=\"24px\" height=\"24px\" /\u003e](http://godban.github.io/browsers-support-badges/) \u003cbr /\u003e Opera |\n| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n| last 2 versions                                                                                                                                                                                                  | last 2 versions                                                                                                                                                                                                      | IE11, Edge                                                                                                                                                                                                         | last 2 versions                                                                                                                                                                                                  | last 2 versions                                                                                                                                                                                              |\n\n## License\n\n[MIT](LICENSE)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjiayisheji%2Fjianshu","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjiayisheji%2Fjianshu","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjiayisheji%2Fjianshu/lists"}