{"id":32519821,"url":"https://github.com/7yasin/ion-chat","last_synced_at":"2025-10-28T05:01:44.797Z","repository":{"id":320399510,"uuid":"1081879273","full_name":"7yasin/ion-chat","owner":"7yasin","description":"Simple 1:1 real-time chat app built with Ionic Angular and Firebase Realtime Database. Includes email/password auth, chat list, and instant messaging.","archived":false,"fork":false,"pushed_at":"2025-10-23T14:32:29.000Z","size":2479,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-10-23T16:30:06.242Z","etag":null,"topics":["angular","angularfire","capacitor","chat-app","firebase","ionic","ionic-angular","mobile","pwa","realtime-database","typescript"],"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/7yasin.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-10-23T12:24:55.000Z","updated_at":"2025-10-23T14:37:45.000Z","dependencies_parsed_at":"2025-10-23T16:40:22.911Z","dependency_job_id":null,"html_url":"https://github.com/7yasin/ion-chat","commit_stats":null,"previous_names":["7yasin/ion-chat"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/7yasin/ion-chat","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/7yasin%2Fion-chat","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/7yasin%2Fion-chat/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/7yasin%2Fion-chat/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/7yasin%2Fion-chat/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/7yasin","download_url":"https://codeload.github.com/7yasin/ion-chat/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/7yasin%2Fion-chat/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":281386586,"owners_count":26492014,"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","status":"online","status_checked_at":"2025-10-28T02:00:06.022Z","response_time":60,"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","angularfire","capacitor","chat-app","firebase","ionic","ionic-angular","mobile","pwa","realtime-database","typescript"],"created_at":"2025-10-28T05:00:23.847Z","updated_at":"2025-10-28T05:01:44.788Z","avatar_url":"https://github.com/7yasin.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n\n# IonChat\n\nIonChat is a simple real-time chat application built with **Ionic Angular** and **Firebase**. It allows users to register, log in, start one-on-one conversations, and send messages instantly using Firebase Realtime Database.\n\nThis project is intended as a lightweight example for developers who want to learn how chat apps work using Ionic and Firebase.\n\n---\n\n## Screenshots\n\n\u003cdiv align=\"center\"\u003e\n  \u003ctable\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" style=\"padding:10px;\"\u003e\n        \u003cimg src=\"readme-assets/blackTheme.png\" width=\"200\"/\u003e\u003cbr/\u003e\n        \u003csub\u003e\u003cstrong\u003eDark Theme\u003c/strong\u003e\u003c/sub\u003e\n      \u003c/td\u003e\n      \u003ctd align=\"center\" style=\"padding:10px;\"\u003e\n        \u003cimg src=\"readme-assets/whiteTheme.png\" width=\"200\"/\u003e\u003cbr/\u003e\n        \u003csub\u003e\u003cstrong\u003eLight Theme\u003c/strong\u003e\u003c/sub\u003e\n      \u003c/td\u003e\n      \u003ctd align=\"center\" style=\"padding:10px;\"\u003e\n        \u003cimg src=\"readme-assets/loginPage.png\" width=\"200\"/\u003e\u003cbr/\u003e\n        \u003csub\u003e\u003cstrong\u003eLogin Page\u003c/strong\u003e\u003c/sub\u003e\n      \u003c/td\u003e\n      \u003ctd align=\"center\" style=\"padding:10px;\"\u003e\n        \u003cimg src=\"readme-assets/registerPage.png\" width=\"200\"/\u003e\u003cbr/\u003e\n        \u003csub\u003e\u003cstrong\u003eRegister Page\u003c/strong\u003e\u003c/sub\u003e\n      \u003c/td\u003e\n      \u003ctd align=\"center\" style=\"padding:10px;\"\u003e\n        \u003cimg src=\"readme-assets/userChats.png\" width=\"200\"/\u003e\u003cbr/\u003e\n        \u003csub\u003e\u003cstrong\u003eUser Chats\u003c/strong\u003e\u003c/sub\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/table\u003e\n\u003c/div\u003e\n\n\n---\n\n## Features\n- User registration and login (Firebase Authentication)\n- Real-time messaging (Firebase Realtime Database)\n- Chat list with last message preview\n- Start a new chat with any registered user\n- Mobile-friendly UI using Ionic components\n- Message send sound effect\n\n---\n\n## Tech Stack\n- **Framework:** Angular 18, Ionic 8\n- **Backend:** Firebase (Auth + Realtime Database)\n- **Mobile Runtime:** Capacitor 6\n- **Language:** TypeScript\n\n---\n\n## Installation\n\n### 1. Clone the project\n```bash\ngit clone \u003cREPO_URL\u003e\ncd IonChat\n````\n\n### 2. Install dependencies\n\n```bash\nnpm install\n```\n\n### 3. Configure Firebase\n\nEdit the file:\n\n```\nsrc/environments/environment.ts\n```\n\nExample:\n\n```ts\nexport const environment = {\n  production: false,\n  firebaseConfig: {\n    apiKey: \"\u003cYOUR_API_KEY\u003e\",\n    authDomain: \"\u003cYOUR_AUTH_DOMAIN\u003e\",\n    databaseURL: \"\u003cYOUR_DATABASE_URL\u003e\",\n    projectId: \"\u003cYOUR_PROJECT_ID\u003e\",\n    storageBucket: \"\u003cYOUR_STORAGE_BUCKET\u003e\",\n    messagingSenderId: \"\u003cYOUR_SENDER_ID\u003e\",\n    appId: \"\u003cYOUR_APP_ID\u003e\"\n  }\n};\n```\n\n### 4. Run the app\n\n```bash\nnpm start\n```\n\n---\n\n## Usage\n\n1. Register an account\n2. Log in\n3. Select a user to start chatting\n4. Send and receive messages in real time\n\n---\n\n## Project Structure\n\n```\nsrc/\n  app/\n    login/       # Login page\n    register/    # Register page\n    home/        # Chat interface\n    services/    # Firebase service\n  assets/        # Images, sounds\n  environments/  # Firebase config\n```\n\n---\n\n## Database Architecture (Firebase Realtime DB)\n\n| Node       | Purpose                      | Structure (Key Fields)                                                                 |\n|------------|------------------------------|-----------------------------------------------------------------------------------------|\n| users      | Stores registered users      | `userId → { username, email, password }`                                                |\n| chats      | Chat sessions between users  | `chatId (userA_userB) → { createdAt, messageKey: { message, sender, timestamp } }`     |\n| messages   | Global message log (optional)| `messageKey → { message, sender, receiver, timestamp }`                                 |\n\n---\n\n## Future Ideas (Optional)\n\n* Group chats\n* Profile images\n* Message read indicators\n\n---\n\n## License\n\nThis project is open source and available under the MIT License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F7yasin%2Fion-chat","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F7yasin%2Fion-chat","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F7yasin%2Fion-chat/lists"}