/Talk-In

Primary LanguageDartMIT LicenseMIT

App Logo

Talk-In: Text Messaging Chat App

This is a simple text messaging chat app developed using Kotlin. It allows users to send and receive text messages in real-time.

🏆 Featured in:

Event Name Event Description
GirlScript Summer of Code 2024 GirlScript Summer of Code is a three-month-long Open Source Program conducted every summer by GirlScript Foundation. It is an initiative to bring more beginners to Open-Source Software Development.

Table of Contents

Upcoming Features:

  • Real-time Messaging: Users can send and receive text messages instantly.
  • User Authentication: Secure user authentication system to ensure only authorized users can access the app.
  • User Profiles: Users can create and customize their profiles with profile pictures and status messages.
  • Contacts: Users can add, remove, and manage their contacts list.
  • Group Chat: Users can create and participate in group chats with multiple participants.
  • Message Encryption: Messages are encrypted to ensure privacy and security.
  • Push Notifications: Users receive push notifications for new messages and other important events.
  • Emoji Support: Users can send emojis to express themselves better.
  • Dark Mode: Optional dark mode for better usability in low-light environments.
  • Voice Messaging: Implement voice messaging functionality for users to send voice messages.
  • File Sharing: Allow users to share files such as images, videos, and documents.
  • Message Reactions: Users can react to messages with emojis or predefined reactions.
  • Message Editing: Enable users to edit sent messages.
  • Message Deletion: Allow users to delete sent messages.
  • Message Search: Implement a search feature to search through message history.
  • Custom Themes: Allow users to customize the app's appearance with different themes and color schemes.
  • Message Timestamps: Show timestamps for each message to indicate when it was sent.
  • Offline Mode: Implement offline mode for users to read and compose messages even without an internet connection.
  • Backup and Restore: Enable users to backup and restore their chat history.
  • Integration with Other Platforms: Integrate the app with other messaging platforms such as WhatsApp, Facebook Messenger, or Telegram.

Technologies Used:

  • Kotlin: The primary programming language used for app development. kotlin website
  • Firebase: Firebase Authentication for user authentication and Firebase Realtime Database for real-time messaging. firebase website
  • Android SDK: Android Software Development Kit for building Android apps. sdk website
  • MVVM Architecture: Model-View-ViewModel architecture pattern for clean and maintainable code. know more about MVVM website
  • Retrofit: For making HTTP requests to the server for additional functionalities like profile updates and group chat management. Retrofit website
  • Glide: For efficient image loading and caching. glide website

Code of Conduct

Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.

Contributing Guidelines

We believe in the power of collaboration. If you have ideas to improve College.ai, feel free to contribute! Check out our Contribution Guidelines to get started.

Installation:

  1. Fork It: Fork the project to create your own copy.

  2. Clone the repository:

    $ git clone https://github.com/<your-account-username>/<your-forked-project>.git
  3. Open the project in Android Studio.

  4. Connect your Android device or start an emulator.

  5. Run the app.

  6. Do the contribution you want do.

Contributing

Contributions are welcome! If you'd like to contribute to this project, follow the steps

  1. 🌿Branch Out: Create a new branch with a meaningful name. Branching allows you to work on a separate line of development without affecting the main codebase.
$ git checkout -b <your_branch_name>
  1. ✍️Make Changes: Work your magic on the codebase. Modify existing files, add new ones, or remove unnecessary ones as needed.

  2. 📁Track Changes: After making your modifications, add the changed files to the staging area.

    $ git add .
  3. 🚚Commit: Commit your changes with a descriptive message that summarizes the changes you've made.

    $ git commit -m "<commit message>"
  4. 🚀Push Changes: Push your committed changes to your forked repository on GitHub. This will allow you to create a pull request from your branch.

    $ git push -u origin <your_branch_name>
  5. 🌐Create Pull Request: Head to GitHub, navigate to your forked repository, and initiate a pull request by clicking "Compare & pull request".

    In the pull request description, provide a clear and concise summary of the changes you've made, along with any relevant information or context. This will help the project maintainers understand your contribution and review it more efficiently.

    Once you've created the pull request, it will be reviewed by the project maintainers. They may request changes, provide feedback, or merge your contribution into the main codebase. Remember, this process is essential for contributing to open-source projects on GitHub. Following these steps ensures that your changes are properly tracked, reviewed, and integrated into the project while maintaining code integrity and collaboration.

Alternatively using GitHub Desktop

  1. Open GitHub Desktop: Launch GitHub Desktop and log in to your GitHub account if you haven't already.

  2. Clone the Repository:

    • If you haven't cloned the ResourceHub repository yet, you can do so by clicking on the "File" menu and selecting "Clone Repository."
    • Choose the repository from the list of repositories on GitHub and clone it to your local machine.
  3. Switch to the Correct Branch:

    • Ensure you are on the branch that you want to submit a pull request for.
    • If you need to switch branches, you can do so by clicking on the "Current Branch" dropdown menu and selecting the desired branch.
  4. Make Changes: Make your changes to the code or files in the repository using your preferred code editor.

  5. Commit Changes:

    • In GitHub Desktop, you'll see a list of the files you've changed. Check the box next to each file you want to include in the commit.
    • Enter a summary and description for your changes in the "Summary" and "Description" fields, respectively. Click the "Commit to " button to commit your changes to the local branch.
  6. Push Changes to GitHub: After committing your changes, click the "Push origin" button in the top right corner of GitHub Desktop to push your changes to your forked repository on GitHub.

  7. Create a Pull Request: Go to the GitHub website and navigate to your fork of the ResourceHub repository. You should see a button to "Compare & pull request" between your fork and the original repository. Click on it.

  8. Review and Submit:

    • On the pull request page, review your changes and add any additional information, such as a title and description, that you want to include with your pull request.
    • Once you're satisfied, click the "Create pull request" button to submit your pull request.
  9. Wait for Review: Your pull request will now be available for review by the project maintainers. They may provide feedback or ask for changes before merging your pull request into the main branch of the ResourceHub repository.

TalkIn Website

  1. Technologies The Web App is coded in dart programming language using the Flutter SDK.

  2. Hosting The Website is deployed using the Firebase Hosting.

  3. Method to Host on Firebase

    1. Install the Firebase CLI using the command-
      $ npm install -g firebase-tools" 
    2. Initialise your project
      1. $ firebase login" 
      2. $ firebase init"
    3. Deploy to Firebase using the command -
      $ firebase deploy" 

If you find this project useful, please consider giving it a star! ⭐️

Learn More

To learn more about the project you must refer to Learn

Contact for help:

  1. Admin- Shivam Jaiswal For questions or inquiries, please contact Shivam Jaiswal

  2. Mentors- Aman Nishad , Amanpreet Kaur For questions or inquiries, please contact Aman Nishad For questions or inquiries, please contact Amanpreet Kaur

License

Refer to LICENSE file for details.

💪 Thanks to all Contributors

Thanks to all contributors for helping this project grow! 🍻

🙏 Support

Don't forget to leave a star ⭐ for this project!

Crafted with ♥ by @Ijaiswalshivam