{"id":28174515,"url":"https://github.com/ryanhustler420/ainode_chatapp","last_synced_at":"2026-04-11T19:01:23.522Z","repository":{"id":116815301,"uuid":"171108179","full_name":"Ryanhustler420/AINode_chatapp","owner":"Ryanhustler420","description":"this app has build with node js and angular ","archived":false,"fork":false,"pushed_at":"2019-03-26T17:12:48.000Z","size":456,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-01-03T13:35:07.209Z","etag":null,"topics":["angular","api","application","authentication","chat","cordova","crud","framework","fullstack","ionic","javascript","logging","mobile-app","nodejs","opensource","signup","social-app","socket-io","typescript","website"],"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/Ryanhustler420.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,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2019-02-17T10:21:21.000Z","updated_at":"2019-03-27T07:24:34.000Z","dependencies_parsed_at":null,"dependency_job_id":"285e68ac-a885-48e8-8b92-3ccd60a9af86","html_url":"https://github.com/Ryanhustler420/AINode_chatapp","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Ryanhustler420/AINode_chatapp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ryanhustler420%2FAINode_chatapp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ryanhustler420%2FAINode_chatapp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ryanhustler420%2FAINode_chatapp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ryanhustler420%2FAINode_chatapp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Ryanhustler420","download_url":"https://codeload.github.com/Ryanhustler420/AINode_chatapp/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ryanhustler420%2FAINode_chatapp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31691503,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-11T13:07:20.380Z","status":"ssl_error","status_checked_at":"2026-04-11T13:06:47.903Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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","api","application","authentication","chat","cordova","crud","framework","fullstack","ionic","javascript","logging","mobile-app","nodejs","opensource","signup","social-app","socket-io","typescript","website"],"created_at":"2025-05-15T22:16:25.160Z","updated_at":"2026-04-11T19:01:23.498Z","avatar_url":"https://github.com/Ryanhustler420.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# AINode_chatapp\n\n##### Install these as you go\n\nthis app has build with node js and angular with ionic framework\n\n\u003e Install Node js\n\u003e Install Angular js [here](https://angular.io/guide/quickstart)\n\n```\nnpm install -g @angular/cli\nng -v\nng new my-app\ncd my-app\nng serve --open\n```\n\n\u003e Install Mongodb [here](https://www.mongodb.com/)\n\u003e Install Code Editor Like, Vs code, notepad++, sublime etc...\n\n\u003e Check out Angular CLI [here](https://github.com/angular/angular-cli/wiki)\n\n\u003e Install Prettier as Dev Dependency [here](https://www.npmjs.com/package/prettier)\n\n\u003e Install Prettier Extension for vscode\n\u003e Ctrl + , for setting in vscode\n\n```\n\"[javascript]\": {\n    \"editor.formatOnSave\": true\n},\n\"[typescript]\": {\n    \"editor.formatOnSave\": true\n},\n\"prettier.eslintIntegration\": true,\n\"prettier.singleQuote\": true,\n```\n\n\u003e Materialize Css [here](https://materializecss.com/). Add CDN to index.html\n\n\u003e Install Materialize Package Or feel free to use CDN\n\n```\nnpm install materialize-css@next --save\n```\n\n\u003e To configure GIT BASH into vs code go to setting.json and add the following:-\n\n```\n\"terminal.integrated.shell.windows\": \"C:\\\\Program Files\\\\Git\\\\bin\\\\bash.exe\",\n```\n\n\u003e **ng generate component components/authTabs --no-spec --dry-run** for testing which does'nt create actual directory at all\n\n\u003e **ng g module modules/auth --no-spec --flat** create a local auth module for authTabs\n\u003e **ng g module modules/auth-routing --no-spec --flat** create a routing related module for route component\n\n\u003e ng g c components/login --no-spec --module=modules/auth.module.ts --dry-run\n\n\u003e ng g c components/login --no-spec --module=modules/auth.module.ts\n\u003e ng g c components/signup --no-spec --module=modules/auth.module.ts\n\n\u003e npm install express mongoose --save\n\n\u003e npm install cookie-parser morgan --save\n\n\u003e npm install joi --save\n\n\u003e npm install http-status-codes --save\n\n\u003e npm install bcryptjs --save\n\n\u003e Testing with postman\n\n\u003e npm install jsonwebtoken --save\n\n\u003e ng g service services/auth --no-spec --flat\n\n\u003e npm install cors --save\n\n\u003e ng generate component components/streams --no-spec\n\n\u003e ng g module modules/streams --no-spec --flat\n\n\u003e ng g service services/token --no-spec --flat\n\n\u003e npm install ngx-cookie-service --save\n\n\u003e ng g guard services/auth --no-spec --flat --\u003e choose CanActivate Interface Option\n\n\u003e ng g c components/toolbar --no-spec\n\n\u003e ng g c components/side --no-spec --module=modules/streams.module.ts --dry-run\n\n\u003e ng g c components/side --no-spec --module=modules/streams.module.ts\n\n\u003e ng g c components/postForm --no-spec --module=modules/streams.module.ts\n\n\u003e ng g c components/posts --no-spec --module=modules/streams.module.ts\n\n\u003e ng g service services/post --no-spec --flat --module=modules/streams.module.ts\n\n\u003e ng g class services/token-interceptor --no-spec --flat\n\n\u003e npm install moment --save\n\n\u003e npm install --save socket.io\n\n\u003e npm install socket.io-client --save\n\n\u003e npm install lodash --save\n\n\u003e ng g component components/comments --no-spec --module=modules/streams.module.ts\n\n\u003e ng g component components/people --no-spec --module=modules/streams.module.ts\n\n\u003e ng g service services/users --no-spec --flat\n\n\u003e ng g component components/following --no-spec --module=modules/streams.module.ts\n\n\u003e ng g component components/followers --no-spec --module=modules/streams.module.ts\n\n\u003e ng g component components/notifications --no-spec --module=modules/streams.module.ts\n\n\u003e ng g component components/top-streams --no-spec --module=modules/streams.module.ts\n\n\u003e ng g component components/my-post --no-spec --module=modules/streams.module.ts\n\n\u003e ng g component components/chat --no-spec --module=modules/streams.module.ts\n\n\u003e ng g component components/message --no-spec --module=modules/streams.module.ts\n\n\u003e ng g s services/message --no-spec --flat\n\n\u003e npm i ngx-auto-scroll --save\n\n\u003e npm i ng2-emoji-picker --save\n\n\u003e npm install --save rxjs-compat [for backward compatablity]\n\n\u003e npm i lodash --save [for back end]\n\n\u003e ng g component components/images --no-spec --module=modules/streams.module.ts\n\n\u003e npm i ng2-file-upload --save [ng2 directive for file upload]\n\n\u003e npm install cloudinary --save [for back end]\n\n\u003e ng g c components/viewUser --no-spec --module=modules/streams.module.ts\n\n\u003e npm install moment --save\n\n\u003e ng g c components/changePassword --no-spec --module=modules/streams.module.ts\n\n\u003e npm install request --save [for backend]\n\n##### Setup Cloudinary Console\n\n\u003e config.js\n\n```\nmodule.export = {\n    url: `mongodb://localhost:27017/dbname`,\n    secret: `yourjsonsecretkeygoeshere_dontShareWithAnyOne`\n};\n```\n\n##### Geo Location\n\n\u003e https://geoip-db.com/\n\n##### API Endpoints\n\n1.  User Create\n    - /api/chatapp/v1/register - POST\n    - /api/chatapp/v1/login - POST\n    - /api/chatapp/v1/mark/:notification_id - POST (MARK SINGLE NOTIFICATION)\n    - /api/chatapp/v1/delete/:notification_id - POST (DELETE SINGLE NOTIFICATION)\n    - /api/chatapp/v1/mark-all - POST (MARK ALL NOTIFICATIONS AS READ)\n    - /api/chatapp/v1/users - GET (GET ALL USERS)\n    - /api/chatapp/v1/users/:id - GET (GET SINGLE USERS)\n    - /api/chatapp/v1/users_with/:username - GET (GET USERS BY USERNAME)\n2.  Post Route\n    - /api/chatapp/v1/post/add-post - POST (create post)\n    - /api/chatapp/v1/post/add-like - POST\n    - /api/chatapp/v1/post/add-comment - POST\n    - /api/chatapp/v1/post/posts - GET (GET ALL POST)\n    - /api/chatapp/v1/post/posts/:id - GET (GET SINGLE POST)\n3.  Follow\n    - /api/chatapp/v1/follow-user\n    - /api/chatapp/v1/unfollow-user\n\n##### Front End Endpoint\n\n1.  Auth\n    - /\n2.  Stream aka Home\n    - /streams\n    - /post/:id\n    - /people\n    - /people/following\n    - /people/followers\n\n##### DB_DESIGN_FOR_CHAT\n\n```javaScript\n\n// Assume Anki and Mona wants to talk\n\nAnki : [\n    chatList: [\n            {\n                userId: Mona_id,\n                messageId: ABCD123456789FFF\n            },\n    ]\n]\n\nMona: [\n    chatList: [\n            {\n                userId: Anki_id,\n                messageId: ABCD123456789FFF\n            },\n    ]\n]\n\nmessageSchema: [\n    {\n        id: ABCD123456789FFF\n        parties: _id,\n        sender: ANki\n        receiver:_Mona\n        messages: [\n            {\n                coversation_id: ,\n                body: ,\n                createdAt: ,\n            }\n        ]\n    }\n]\n\nparties: [\n    {\n        _id,\n        senderId,\n        receiverId\n    }\n]\n\n\n```\n\n# Ionic app\n\n\u003e Create a directory name 'ionic_chat'\n\n\u003e install node\n\n\u003e install angular\n\n\u003e npm install -g ionic\n\n\u003e npm install -g cordova\n\n\u003e ionic start chatapp-ionic blank\n\n\u003e ionic serve -l","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fryanhustler420%2Fainode_chatapp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fryanhustler420%2Fainode_chatapp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fryanhustler420%2Fainode_chatapp/lists"}