{"id":18122127,"url":"https://github.com/kelsman/twitter-clone","last_synced_at":"2026-05-05T04:33:21.970Z","repository":{"id":204166760,"uuid":"482368296","full_name":"kelsman/twitter-clone","owner":"kelsman","description":"This is a full stack web clone of twitter built with Angular and NestJs Microservices","archived":false,"fork":false,"pushed_at":"2022-05-26T22:02:27.000Z","size":1864,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-26T16:59:04.587Z","etag":null,"topics":["angular","microservice","nestjs","socket-io","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/kelsman.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}},"created_at":"2022-04-16T21:47:47.000Z","updated_at":"2022-04-30T18:49:51.000Z","dependencies_parsed_at":null,"dependency_job_id":"0bc1dd9f-8b68-4df4-ab43-40f9cc278e10","html_url":"https://github.com/kelsman/twitter-clone","commit_stats":null,"previous_names":["kelsman/twitter-clone"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/kelsman/twitter-clone","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kelsman%2Ftwitter-clone","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kelsman%2Ftwitter-clone/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kelsman%2Ftwitter-clone/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kelsman%2Ftwitter-clone/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kelsman","download_url":"https://codeload.github.com/kelsman/twitter-clone/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kelsman%2Ftwitter-clone/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32635556,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-04T10:08:07.713Z","status":"online","status_checked_at":"2026-05-05T02:00:06.033Z","response_time":54,"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":["angular","microservice","nestjs","socket-io","typescript"],"created_at":"2024-11-01T06:23:29.911Z","updated_at":"2026-05-05T04:33:21.946Z","avatar_url":"https://github.com/kelsman.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Angular + Nestjs Twitter Clone\n\nThis repository is an ongoing twitter clone application, featuring an event driven microservice architecture managed in an [Nx](https://nx.dev) workspace.This project was using [Nx](https://nx.dev).\n\n## user stories\n\n- A user can be authenticated via google\n- A user can be authenticated via email and password\n- A user makes a post\n- A user can subscribe to other users\n- A user has a viewable list of their own posts\n- A user can chat with other users or a group of users\n- A user has an activity feed of those they follow's post\n\n### This app needs to provide the following functionalities\n\n- To create a user\n- To login a user\n- To get the list of user's post\n- To retrieve an aggregated activity feed of posts from those they follow\n- To retweet other users posts\n\n### Technical choices\n\n- [Angular](https://angular.io) for web-client\n- [Nest](https://nestjs.com) for backend\n- [MongoDB](https://www.mongodb.com/) for a NoSQL datastore\n- [Mongoose](https://mongoosejs.com/) as ORM for database interaction\n- [socketIO](https://socket.io/) for realtime bi-directional communications\n\n- Redis as Message-broker\n\n### Services breakdown:\n\n- API auth (user authentication and authorization)\n\n- Api post service ( CRUD for tweets)\n- Api Email service(Sending Emails)\n- Api Feed service(Aggregating user activity feed)\n- Api chat service (CRUD messaging)\n\n### Sharable libraries breakdown:\n\n- core ( decorators, guards, interfaces, utility functions, constants )\n- dto ( all data transferable objects used across services)\n- schemas ( contains all schemas)\n\n### Environmental variables\n\n- MONGO_URL //your mongodb url\n- JWT_SECRET //json web token secret\n- JWT_ACCESS_EXPIRES_IN //Expiry time for access token\n- JWT_REFRESH_EXPIRES_IN //Expiry time for refresh token\n- EMAIL_USER // smt username\n- EMAIL_PASSWORD //smtp password\n- EMAIL_SERVICE // smtp service\n- POST_PORT = 4000\n- AUTH_PORT = 4001\n- USER_PORT = 4002\n- GOOGLE_OAUTH_CLIENT_SECRET // google oauth client secret\n- GOOGLE_OAUTH_CLIENT_ID // google oauth client id\n- GOOGLE_OAUTH_REDIRECT_URI // google oauth redirect url\n- CLIENT_URL // web client url\n\n## Development server\n\nRun `ng serve my-app` for a dev server. Navigate to http://localhost:4200/. The app will automatically reload if you change any of the source files.\n\n## Code scaffolding\n\nRun `ng g component my-component --project=my-app` to generate a new component.\n\n## Build\n\nRun `ng build my-app` to build the project. The build artifacts will be stored in the `dist/` directory. Use the `--prod` flag for a production build.\n\n## Running unit tests\n\nRun `ng test my-app` to execute the unit tests via [Jest](https://jestjs.io).\n\nRun `nx affected:test` to execute the unit tests affected by a change.\n\n## Running end-to-end tests\n\nRun `ng e2e my-app` to execute the end-to-end tests via [Cypress](https://www.cypress.io).\n\nRun `nx affected:e2e` to execute the end-to-end tests affected by a change.\n\n## Further help\n\nVisit the [Nx Documentation](https://nx.dev/angular) to learn more.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkelsman%2Ftwitter-clone","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkelsman%2Ftwitter-clone","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkelsman%2Ftwitter-clone/lists"}