Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/gnowoel/talktive
A simple anonymous group chat app
https://github.com/gnowoel/talktive
anonymous-chat chat-app firebase flutter group-chat web-app
Last synced: about 2 months ago
JSON representation
A simple anonymous group chat app
- Host: GitHub
- URL: https://github.com/gnowoel/talktive
- Owner: gnowoel
- Created: 2024-04-27T02:03:20.000Z (9 months ago)
- Default Branch: master
- Last Pushed: 2024-10-21T04:03:45.000Z (3 months ago)
- Last Synced: 2024-10-21T07:06:53.533Z (3 months ago)
- Topics: anonymous-chat, chat-app, firebase, flutter, group-chat, web-app
- Language: Dart
- Homepage: https://talktive.app/
- Size: 1.26 MB
- Stars: 5
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
Awesome Lists containing this project
README
# Talktive
A simple anonymous group chat app for comfortably talking to strangers.
[![button_open-the-app](https://github.com/user-attachments/assets/13c64934-2123-4829-bc8f-6a729b4dfd3d)](https://open.talktive.app/)
## Screenshots
![screenshots](https://github.com/user-attachments/assets/855c3de8-6c62-4d83-bfd9-122a684cd14b)
## Main features
**:see_no_evil: Anonymous**
There is no login button. You do not need to enter any personal information to participate in a chat. Just open the app and join the room.
**:cyclone: Random**
You don't know who you're going to meet, and you don't know where they're coming from. All you know is that people here are willing to listen.
**:droplet: Ephemeral**
You can open your heart and share your happiness or sadness. In an hour, everyone goes their separate ways, like strangers you met on a train.
**:lock: Private**
No one but the participants can see your conversations. Expired rooms are not publicly accessible, and all records will eventually be deleted.
## Implementation
The technical details can be found in the blog post:
* [The Challenges of Building a Simple Chat App with Flutter and Firebase](https://medium.com/@gnowoel/the-challenges-of-building-a-simple-chat-app-with-flutter-and-firebase-b9f0a2f0f889)
## Firebase setup
Create a new Firebase project, and enable the following services:
* Authentication (Anonymous)
* Realtime Database
* FunctionsIn order to use Cloud Functions, we need to upgrade the project to the Blaze plan (pay-as-you-go).
## Local setup
Clone the repo:
```
$ git clone https://github.com/gnowoel/talktive.git
$ cd talktive
```Configure FlutterFire:
```
$ firebase login
$ dart pub global activate flutterfire_cli
$ flutterfire configure
```Configure Firebase:
```
$ firebase init
```Select the following services:
* Realtime Database
* Functions
* EmulatorsFor "Functions", select:
* TypeScript
For "Emulators", select:
* Authentication Emulator
* Functions Emulator
* Database Emulator
* Pub/Sub Emulator## Running
Watch and compile Cloud Functions code (from the `functions` directory):
```
$ npm run build:watch
```Start Emulators Suite, and take a note of the URL for the HTTP request:
```
$ firebase emulators:start
```Trigger the scheduler once with an HTTP request, using the URL from the previous step:
```
$ curl http://127.0.0.1:5001/talktive-12345/us-central1/requestedCleanup
```Optionally start a device simulator or emulator, for example:
```
$ flutter emulators --launch apple_ios_simulator
```Optionally run the unit and integration tests:
```
$ flutter test
$ flutter test integration_test
```Start the app:
```
$ flutter run
```## Deployment
Deploy Realtime Database Securty Rules:
```
$ firebase deploy --only database
```Deploy Cloud Functions (from the `functions` directory):
```
$ npm run deploy
```Build the `web` release of the Flutter app:
```
$ flutter build web
```Upload the `build/web` directory to your hosting service of choice.