Giter Site home page Giter Site logo

aossie-org / resonate Goto Github PK

View Code? Open in Web Editor NEW
177.0 8.0 127.0 35.61 MB

Clubhouse, but Open Source. A social voice platform.

License: GNU General Public License v3.0

Kotlin 0.03% Swift 0.11% Objective-C 0.01% Dart 99.47% Ruby 0.37%
hacktoberfest communication flutter livekit mobile-app codepeak23 gsoc-2024

resonate's People

Contributors

0xadiyat avatar aarush-acharya avatar aditya062003 avatar akashangadii avatar amanraval76593 avatar animeshchaudhri avatar arice77 avatar asmitvimal-cred avatar ayanady17 avatar bhawesh2002 avatar bhoomikshetty avatar chandansgowda avatar himateju avatar jddeep avatar jhalakupadhyay avatar juanitacathy avatar kareemabdeen avatar mrbooring avatar naman-30903 avatar nishchayshakya1 avatar notpritam avatar r1n1os avatar shamanthop avatar sharmadhruv2511 avatar shivammenda avatar simardeepsingh1450 avatar theadityaagnihotri avatar thienng65 avatar vrundraval24 avatar xonx4l avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

resonate's Issues

Add a splash screen

Currently when the app restarts, we get to see the login screen for a second or so even if we are logged in. This leads to bad user experience. A better approach is to have a splash screen until the authentication controller checks if the user is already logged in and then navigate accordingly.

UI: Implement App Screens

This issue tracks the implementation of UI designs/views. We can work on improving the UI and add elements as and when required. For now, the following screens/widgets have to be implemented. Feel free to make improvements to the proposed design.

  • SignIn/SignUp Screen
  • User Onboarding Screen
  • Rooms List Screen
  • Single Room Screen
  • Create Room Popup
  • Profile Screen
SignIn Screen Signup Screen User Onboarding
login signup_screen onboard
Rooms Screen Create Room Popup Single Room Screen
rooms_screen create_room room_screen

Implement ApiService Class

Create an ApiService class inside the services folder which has methods to talk to Resonate's backend API.

Migrate Backend from Firebase to Appwrite

We have decided to migrate our project's backend infrastructure from Firebase to Appwrite. This issue serves as a central point to track the progress, discuss challenges, and coordinate the migration process.

Checklist

  • The codebase has been refactored to use Appwrite APIs and SDKs.
  • Existing functionality has been thoroughly tested after migration.
  • Relevant stakeholders have been notified about the migration from Firebase to Appwrite.
  • Documentation has been updated to reflect the changes made.

Disable support for Web and Desktop

Since our goal as of now is just to develop app for Android and iOS, we can disable web and desktop-related things. This makes our projects a little cleaner and lighter.

Make sure to use conventional commit structure as follows:

<type>: <short summary>
  │               │
  │               └─⫸ Summary. Not capitalized. No period at the end.
  │
  └─⫸ Commit Type: docs|feat|fix|perf|refactor|test

Email Verification Screen Needed

An Email verfication screen and logic needed while sign up to avoid users to enter false emails and to ensure the email entered belongs to them would implement OTP format to validate emails

Document the architecture

State how you are going to build something like a Clubhouse or Twitter spaces.

  • How is audio streaming going to be handled
  • How are people going to join in a space

A lot of questions. Research and come up with answers.

Refactor Onboarding Functionality to a different controller

Previously, onboarding was taken care by profile controller. Since onboarding is a one time task, it will not be efficient to use it in profile controller which gets created every time the user uses the app or goes to profile screen.

Sort Participants based on their role

Currently all participants are getting displayed in random order. Lets make it in order like first the Admin comes in, then the moderator, the speakers and then the listeners.

Suggestion: Need of Delete Account Button in Profile Screen

While debugging I had to create a lot of dummy accounts this led to a need of including a delete account Button in the profile screen allowing others to delete their account if required hence allowing other users to be able to use the username they were previously holding

Would like to work on it

Check if username is already taken

Currently, two users can use the same username. Hence, its required to develop a mechanism to check if the username is valid and not taken already. On firebase, this can be achieved by adding a usernames collection with usernames as document IDs and each document has a uid string containing the UID of the user linked to that username and developing a logic to implement it in the view.

Feature to request speaker role

Currently, the user joins the room with speaker role. Lets make it Listener role by default and then the user can raise hand to request speaker role for the room.

Give Incorrect Password Feedback to the User

Currently, if the password is incorrect the error is being catched but the user is not getting any feedback on the frontend saying that the password was invalid. This has to be added to improve the user experience.

Add loading indicator

Loading indicator has to be added for the following.

  • While uploading profile image
  • While saving the user data (onboarding screen)

Make use of loading_animation_widget package.

Need for Logo Icon for Resonate

An app logo icon I believe is needed for Resonate along with its design needs to be finalized I believe it would differ from the AOISSIE-Org logo.

Screenshot 2023-06-21 at 9 49 06 AM

Currently being the default flutter logo, after finalizing the logo the splash screen I believe might also have to be updated the finalized logo being at the center with the organizations logo being at bottom center

Suggestion: Loading Animation for Resonate

A loading animation for Resonate replacing the default flutter loading animation (splash screen which provides a loading animation when Resonate starts currently a default flutter loading animation is being shown would customize it for Resonate )

Would like to work on it

Get user data if not available on firestore

There's a scenario wherein

  1. The user registers a new account
  2. When the onboarding screen appears, user closes the app and reopens it
  3. Now, there is inconsistency in user data on firestore (i.e user has not filled onboarding form)

This has to be fixed.

Add New User Registration Flow

As of now, there is just a simple signup page asking for email address and the password. We have to add a form to collect basic user details like name, profile pic etc.

Store user info in `user-data` database

Currently, we are storing user data filled by the user in onboarding screen in user's preferences. We will have to store it in user-data database so that we can access it while creating single room screen with participants.

Perf: Compress profile image and change upload logic

Currently, we are just uploading the image selected by user to firebase without any compression. This feature has no size limit too. It would be better to limit the image size to 100kb and/or compress it before uploading to firebase storage.
We can make use of the imageQuality parameter in the image_picker's pickImage method.
We can discuss more on the size limit if required.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.