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: 6 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 (over 1 year ago)
- Default Branch: master
- Last Pushed: 2025-04-22T14:22:53.000Z (6 months ago)
- Last Synced: 2025-04-22T15:35:09.030Z (6 months ago)
- Topics: anonymous-chat, chat-app, firebase, flutter, group-chat, web-app
- Language: Dart
- Homepage: https://talktive.app/
- Size: 1.89 MB
- Stars: 10
- Watchers: 1
- Forks: 3
- 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. Try the [web app](https://open.talktive.app/) or get the Android version from Google Play.
[](https://play.google.com/store/apps/details?id=app.talktive)
## Screenshots

## 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:
* Firestore
* Functions
* Storage
* Emulators
* Realtime DatabaseFor "Functions", select:
* TypeScript
For "Emulators", select:
* Authentication Emulator
* Functions Emulator
* Firestore Emulator
* Database Emulator
* Pub/Sub Emulator
* Storage 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 Security Rules for Realtime Database, Cloud Firestore and Firebase Storage:
```
$ firebase deploy --only database,firestore,storage
```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.