A simple chat app for the assignment of Line intern.
-
Chat rooms and history are based on account.
-
The first-time users can create an account by email, password, and a display name.
-
Users can create chat rooms by searching for others' email.
-
-
The data are stored in Firebase.
There are security rules set up for Firestore, so
firebase_options.dart
being public is okay.- Chat history can be restored at any device.
-
Offline chat history.
- Because the data is also stored in local database, the user can still access the chat history although there is no network.
-
Chat with OpenAI.
- A chat room with OpenAI will be created if it doesn't already exists.
-
After cloning the repository, you have to do the following steps first:
-
Resolve the flutter dependencies.
flutter pub get
-
Build the testing dependencies.
dart run build_runner build
-
Copy
.env.example
as.env
, and append OpenAI secret key to it.
-
-
There is a workflow (CI) set up for this repository.
-
When a pull requests opened, it will run
flutter analyse
to check the basic coding rules andflutter test
to run the tests. -
When a tag pushed, it will run checks mentioned before, and then build the apk file and release it.
-
-
There are several unit tests and widget tests for this repository.
-
The design pattern is MVVM.