{"id":21569509,"url":"https://github.com/brucearmstrong007/chat-application-monolithic","last_synced_at":"2025-04-30T16:18:24.871Z","repository":{"id":184964571,"uuid":"669110971","full_name":"BruceArmstrong007/Chat-Application-Monolithic","owner":"BruceArmstrong007","description":"Chat Application - IonicV7, Angularv16, NestJS, MongoDB, RedisDB \u0026 Pub/Sub, Docker, Socket.io","archived":false,"fork":false,"pushed_at":"2024-01-10T22:00:49.000Z","size":3609,"stargazers_count":8,"open_issues_count":6,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-30T16:18:07.361Z","etag":null,"topics":["angular","angular-signals","docker","docker-compose","dockerfile","ionic","mongodb","nestjs","nodejs","redis","redis-database","redis-json","redis-pubsub","rxjs","signal"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/BruceArmstrong007.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-07-21T11:15:46.000Z","updated_at":"2024-09-24T12:57:36.000Z","dependencies_parsed_at":"2024-11-24T11:09:38.959Z","dependency_job_id":"1aec9946-169c-4579-9462-5e40d9027413","html_url":"https://github.com/BruceArmstrong007/Chat-Application-Monolithic","commit_stats":null,"previous_names":["brucearmstrong007/chat-application","brucearmstrong007/chat-application-monolithic"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BruceArmstrong007%2FChat-Application-Monolithic","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BruceArmstrong007%2FChat-Application-Monolithic/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BruceArmstrong007%2FChat-Application-Monolithic/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BruceArmstrong007%2FChat-Application-Monolithic/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BruceArmstrong007","download_url":"https://codeload.github.com/BruceArmstrong007/Chat-Application-Monolithic/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251739678,"owners_count":21635894,"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","angular-signals","docker","docker-compose","dockerfile","ionic","mongodb","nestjs","nodejs","redis","redis-database","redis-json","redis-pubsub","rxjs","signal"],"created_at":"2024-11-24T11:09:39.430Z","updated_at":"2025-04-30T16:18:24.832Z","avatar_url":"https://github.com/BruceArmstrong007.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Chat-Application\nCross Platform Chat Application\n\n# Features\n  Register, Login and Authentication with session for a week, \u003cbr /\u003e\n  Dark \u0026 Light Mode, \u003cbr /\u003e\n  Realtime searching users, sending invites, accepting invites, remove contacts etc.., \u003cbr /\u003e\n  You will see your contact's online presence and vise versa, \u003cbr /\u003e\n  Realtime Chat with your contacts, \u003cbr /\u003e\n  Know number of unread messages and notifications, \u003cbr /\u003e\n  See delivered and seen messages, contact will know that you are typing and vise versa, \u003cbr /\u003e\n  Realtime contact updates (get notified when a user sent a invite), \u003cbr /\u003e\n  Add/Update profile picture, name or even bio (in progress), \u003cbr /\u003e\n  Can reset password in settings, \u003cbr /\u003e\n  Notifications for native devices, asking permission and contact notifications (contact notifications not tested my poor laptop). \u003cbr /\u003e\n\n# Images\n  App images are in the image directory, \u003cbr /\u003e\n\n# Buzz Words\n  Angular V16 \u003cbr/\u003e\n  Ionic V7 \u003cbr/\u003e\n  Docker \u003cbr/\u003e\n  MongoDB \u003cbr/\u003e\n  RedisDB - JSON \u003cbr/\u003e\n  Redis - Pub/Sub \u003cbr/\u003e\n  NestJS \u003cbr/\u003e\n  Socket.IO - Websockets \u003cbr/\u003e\n  REST - HTTP \u003cbr/\u003e\n  JWT Auth - Access \u0026 Refresh Tokens \u003cbr/\u003e\n  Signals \u003cbr/\u003e\n  Monolithic - MVC\n\n# Prerequisite\n  Docker/Docker-Desktop\n  node \u0026 npm\n  MongoDB Compass - Optional\n  Android Studio - Optional\n\n# Procedure to run this repo locally\n1.) pull this repo  \u003cbr /\u003e \n2.) cd to client and npm i  \u003cbr /\u003e\n3.) cd to server and npm i  \u003cbr /\u003e \n4.) cd back to root and docker-compose up server redis redis-insight mongodb --build -V \u003cbr /\u003e \n5.) cd to client again and npm run start:local  \u003cbr /\u003e \n6.) check http://localhost:4200/  \u003cbr /\u003e \n7.) to check redisdb http://localhost:8001/ (Host: redis, port: 6379, name: local, username: default, password: password)\n8.) to check mongodb open mongodb compass and connect to this url mongodb://root:password123@localhost:27017/\n\n# Steps 4 \u0026 5 can be skipped if you do this \n  From root cmd - \"docker-compose up --build -V\"  this will also containerize the Angular-Ionic frontend app \n  and also takes some time to containerize and run\n\n# Note\n  Angularv16, IonicV7, NestJS(monolithic), redis pub/sub \u0026 redisdb, MongoDB, Docker, built with only signals ( No NGRX \u0026 RxJS so far ), Basic default UI and themes, Socket.io extensive implementation \u003cbr /\u003e\n  Make sure you use toggle device toolbar in your browser and set a android or ios device for better UI (Ionic) \u003cbr /\u003e\n  Don't expect API \u0026 UI with error handling, loggers, testing and stuff (not there yet) , purely focusing on functionality \u003cbr /\u003e\n  Default Profile Picture is a random 80 x 80 image from a website loaded at random, you can change it by adding your link for a image hosted online\n\n# What's special\n  Learning the Techs mentioned in note, as well as building a chat application project with backend scalability in mind\n\n# Possibilities\n  with redis pub/sub, websockets are H-scalable \u003cbr /\u003e\n  and redis is also H-scalable with redis clusters \u003cbr /\u003e\n  mongodb also H-scalable with multiple instances \u003cbr /\u003e\n  NestJS monolithic to microservices (if required) is also possible with message brokers or other methods \u003cbr /\u003e\n\n  \n  \n  \n\n  \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrucearmstrong007%2Fchat-application-monolithic","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbrucearmstrong007%2Fchat-application-monolithic","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrucearmstrong007%2Fchat-application-monolithic/lists"}