How to Set Up the Timy Group Messaging App Using Flutter

Jul 25, 2024 | Programming

The Timy app is an incredible open-source group messaging platform built using Flutter. This guide will walk you through the steps to get Timy up and running. The app boasts several exciting features like multiple groups and channels, photo sharing, emoji reactions, event management, and localization in English and German. Let’s dive in!

Main Features of Timy

  • Multiple groups (like Teams in Slack)
  • Open or private channels within groups
  • Photo and photo collection sharing
  • Reacting to messages with emojis
  • Push notifications for messages and updates
  • Dedicated channels for events (including date and venue)
  • Editing capabilities for event channels
  • A calendar for all upcoming and past events across groups
  • English and German localization
  • RSVP functionality for events

Project Structure

This Flutter mobile app is designed for both Android and iOS. The core Flutter app code resides in the lib folder, while the native app codes for Android and iOS are found in their respective directories. Additional project assets and fonts are located in the assets and fonts folders. Furthermore, this repository contains various Firebase configuration files and cloud functions within the firebase folder.

Getting Started

Client Setup

To build and run the mobile apps, you’ll need to install Flutter and its dependencies. To verify your installation, run the following command in the project’s root directory:

$ flutter doctor

Note: The app is optimized for Android and iOS phones in portrait mode. It’s also vital to use Flutter version 1.10.5. You can set this up with:

$ flutter version 1.10.5

Backend Setup (Firebase)

The backend is built using Firebase’s Node.js SDK, and all necessary files are located in the firebase folder. Here are the steps to set it up:

B1. Configure Sign-In Method

  • Select your project in Firebase Console.
  • Navigate to Authentication and activate Email/Password as your sign-in method.
  • Manually add an initial user under Users and copy their User-UID for the next steps.

B2. Configure Firebase App

Follow the instructions in Add Firebase to an App – Flutter for configuration details related to both **Android** and **iOS** platforms.

B3. Setup Database

Within your Firebase console:

  • Create a Cloud Firestore Database in test mode.
  • After login, create a collection named groups and add your first group.
  • Create a sub-collection for channels within the groups collection.

B4. Deploy Firebase Functions

Navigate to the firebase directory and use the following command to deploy all functions:

$ firebase deploy --only functions

B5. Final Steps

Log in with the created user and proceed to create your first event by accessing the hamburger menu in the app. Doing so will set up the calendar collection in the backend.

$ firebase deploy

Troubleshooting

If you encounter issues during the setup process, consider the following troubleshooting tips:

  • Ensure you are using Flutter version 1.10.5, as other versions may cause compatibility issues.
  • If the app does not display as expected after logging in, ensure that your Firebase database structure is correctly set up, particularly the user and groups collections.
  • For deployment issues, double-check your Firebase functions and configurations for potential errors.

For more insights, updates, or to collaborate on AI development projects, stay connected with fxis.ai.

Conclusion

At fxis.ai, we believe that such advancements are crucial for the future of AI, as they enable more comprehensive and effective solutions. Our team is continually exploring new methodologies to push the envelope in artificial intelligence, ensuring that our clients benefit from the latest technological innovations.

Stay Informed with the Newest F(x) Insights and Blogs

Tech News and Blog Highlights, Straight to Your Inbox