{"id":17683210,"url":"https://github.com/nemanjam/rn-chat","last_synced_at":"2025-04-28T17:11:51.616Z","repository":{"id":38800908,"uuid":"212598929","full_name":"nemanjam/rn-chat","owner":"nemanjam","description":"Chat app made with React Native, NativeBase, Apollo Hooks and Sequelize.","archived":false,"fork":false,"pushed_at":"2023-01-04T22:05:09.000Z","size":5018,"stargazers_count":40,"open_issues_count":44,"forks_count":29,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-28T17:11:43.333Z","etag":null,"topics":["apollo","chat","graphql","hooks","nativebase","postgresql","react-native","sequelize"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/nemanjam.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":"2019-10-03T14:19:47.000Z","updated_at":"2024-04-02T17:41:01.000Z","dependencies_parsed_at":"2023-02-02T21:30:49.699Z","dependency_job_id":null,"html_url":"https://github.com/nemanjam/rn-chat","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nemanjam%2Frn-chat","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nemanjam%2Frn-chat/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nemanjam%2Frn-chat/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nemanjam%2Frn-chat/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nemanjam","download_url":"https://codeload.github.com/nemanjam/rn-chat/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251352605,"owners_count":21575863,"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":["apollo","chat","graphql","hooks","nativebase","postgresql","react-native","sequelize"],"created_at":"2024-10-24T09:44:40.427Z","updated_at":"2025-04-28T17:11:51.559Z","avatar_url":"https://github.com/nemanjam.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# RN Chat\n\nChat app made with React Native, NativeBase, Apollo Hooks and Sequelize.\n\n## Features\n\n- JWT auth with email and password strategy\n- Users, Groups, Chats, Profile, Login, Register, Group Details screens\n- Users/Friends, Public/Private Groups, All Users/Group Users tabs, Drawer, Toasts\n- queries for users, friends, chats, public and private groups\n- create, edit, delete group, add, remove user from group mutations with cache updates\n- add, remove friend mutations with cache updates\n- refetching on the Users, Groups and Chats screens\n- message in chat added, group added and message in group added subscriptions\n- cursor Relay pagination on the Users list\n- Sequelize User, Group, Chat, Message models\n- GroupUser, ChatUser, BannedGroupUser, Friends `m:n` relations\n- Messages-User, Messages-Chat `n:1` relations\n- database seed\n\n## Libraries used\n\n- React Native 0.61 with React Hooks, NativeBase\n- React Navigation 4.0, Redux, Redux Thunk\n- Apollo Client, Apollo Server\n- Sequelize, PostgreSQL\n- Formik, Faker, React Native Gifted Chat\n\n## Installation and running\n\n### Server\n\n- `cd server` and `npm install` to install the dependecies\n- set database connection in the `server/src/data/connectors.js` for example `new Sequelize('postgres://dbuser:password@localhost:5432/chat',...`\n- uncomment `db.sync({ force: true }).then(async () =\u003e await seed()).catch(error =\u003e console.log(error));` in the `server/src/data/connectors.js` to seed the database\n- `npm run start` http server and GraphQL playground wil be loaded on `http://localhost:5000` and subscriptions on the `ws://localhost/graphql`\n\n### Client\n\n- `cd client` and `yarn install` to install the dependecies\n- set the server url in the `client/src/App.js` for example `const uri = '10.0.2.2:5000';` or `const uri = '192.168.0.185:5000';`\n- `yarn run android` to run React Native client on the running Android emulator\n- login with the `email@email.com`, `123456`\n\n## Screenshots\n\n\u003cimg src=\"/screenshots/Screenshot_1.png\" width=\"270\"/\u003e \u003cimg src=\"/screenshots/Screenshot_2.png\" width=\"270\"/\u003e \u003cimg src=\"/screenshots/Screenshot_3.png\" width=\"270\"/\u003e\n\n\u003cimg src=\"/screenshots/Screenshot_4.png\" width=\"270\"/\u003e \u003cimg src=\"/screenshots/Screenshot_5.png\" width=\"270\"/\u003e \u003cimg src=\"/screenshots/Screenshot_6.png\" width=\"270\"/\u003e\n\n\u003cimg src=\"/screenshots/Screenshot_7.png\" width=\"270\"/\u003e \u003cimg src=\"/screenshots/Screenshot_8.png\" width=\"270\"/\u003e \u003cimg src=\"/screenshots/Screenshot_9.png\" width=\"270\"/\u003e\n\n\u003cimg src=\"/screenshots/Screenshot_10.png\" width=\"270\"/\u003e \u003cimg src=\"/screenshots/Screenshot_11.png\" width=\"270\"/\u003e \u003cimg src=\"/screenshots/Screenshot_12.png\" width=\"270\"/\u003e\n\n## Database ER diagram\n\n\u003cimg src=\"/screenshots/database.png\" /\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnemanjam%2Frn-chat","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnemanjam%2Frn-chat","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnemanjam%2Frn-chat/lists"}