Skip to content

A simple chat app for the assignment of Line intern.

License

Notifications You must be signed in to change notification settings

an920107/chat-app

Repository files navigation

Let's Chat

GitHub License GitHub Release

Flutter

Logo

Description

A simple chat app for the assignment of Line intern.

Preview

Sign In and Registration

Sign In Page Registration Page

Chat Room List

Room List Page

Chat Room

Chat Room

Add Friend

Add Friend Dialog

Drawer

Drawer

Feature

  • 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.

Development

  • After cloning the repository, you have to do the following steps first:

    1. Resolve the flutter dependencies.

      flutter pub get
    2. Build the testing dependencies.

      dart run build_runner build
    3. Copy .env.example as .env, and append OpenAI secret key to it.

  • There is a workflow (CI) set up for this repository.

    CI

    • When a pull requests opened, it will run flutter analyse to check the basic coding rules and flutter 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.

About

A simple chat app for the assignment of Line intern.

Resources

License

Stars

Watchers

Forks

Languages