zabloncharles / Fumble

Fumble is a user-friendly dating app designed for those who may feel uncertain or inexperienced in the world of dating. It provides a supportive platform where users can connect, explore, and form meaningful relationships with ease.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

FUMBLE

"Fumble: Where Every Mistake Leads to a Love Story!"

fumblemockup3

About

As the founder of Fumble, I've always been fascinated by the complexities of human relationships. However, my own journey through the dating world was far from smooth sailing. I stumbled through awkward conversations, misread signals, and endured my fair share of heartaches. It became clear to me that many others were experiencing similar struggles, often feeling overwhelmed and discouraged by the traditional dating scene.

One day, after yet another disastrous date, I found myself reflecting on the challenges of modern dating. I realized that there was a gap in the market for a platform that catered to individuals who, like myself, were navigating the dating landscape with little to no guidance. That's when the idea for Fumble was born.

I envisioned Fumble as more than just a dating app—it would be a supportive community where users could embrace their imperfections and learn from their mistakes. I wanted to create a space where authenticity and vulnerability were celebrated, and where users could connect on a deeper level beyond surface appearances.

My passion for helping others find love and companionship, coupled with my own experiences of fumbling through the dating world, inspired me to bring Fumble to life. I knew that if given the opportunity, Fumble could revolutionize the way people approached dating, fostering meaningful connections and empowering individuals to embrace their journey to finding love.

fumblemockupprofile

How

The idea for Fumble came to me during a particularly frustrating period in my own dating life. After yet another failed attempt at finding love through traditional dating apps, I realized that there had to be a better way. I started reflecting on my own experiences and those of my friends, and it became clear that many of us were struggling with similar issues—miscommunication, unrealistic expectations, and a lack of genuine connections.

I knew that I wanted to create a dating app that addressed these pain points and provided a solution for people like me who were feeling lost in the world of modern dating. Armed with this vision, I began researching and brainstorming ideas for what would eventually become Fumble.

I reached out to friends, family, and experts in the field to gather insights and feedback on what features and functionalities would be most valuable in a dating app. I also conducted surveys and interviews to better understand the needs and preferences of potential users.

As I delved deeper into the development process, I remained committed to creating a platform that prioritized authenticity, empathy, and inclusivity. I wanted Fumble to be a safe space where users could be themselves without fear of judgment, and where genuine connections could flourish. fumblegenderpref

UI/UX

When designing the UI of Fumble, I used SwiftUI, Apple's modern framework for building user interfaces across all Apple platforms. SwiftUI provides a declarative syntax that makes it easy to create and maintain complex user interfaces with less code.

Using SwiftUI allowed me to design the UI for Fumble with efficiency and flexibility. I was able to create visually appealing layouts, animations, and interactive elements while also ensuring a seamless user experience across different Apple devices.

In terms of the design process, I started by sketching out wireframes and mockups to visualize the layout and flow of the app. Once I had a clear understanding of the user interface structure, I began implementing the designs using SwiftUI.

Throughout the development process, I iterated on the designs based on feedback from usability testing and user research. SwiftUI's live preview feature was incredibly helpful in quickly iterating and fine-tuning the UI elements until I achieved the desired look and feel for Fumble.

Overall, SwiftUI proved to be a powerful tool for designing the UI of Fumble, enabling me to create a modern and intuitive dating app experience for our users.

fumblemockup4

Profile Features

Features of the Profile Section

  • Profile Picture and Basic Information: Each profile includes a profile picture and basic information about the user, such as their name, age, location, and a brief bio. This allows users to quickly assess whether they're interested in learning more about the person.

  • Swipe Gesture: Users can swipe left to dislike a profile or swipe right to like a profile. This intuitive gesture makes it easy for users to quickly browse through potential matches and indicate their level of interest.

  • Match Compatibility: Fumble uses a matching algorithm to analyze users' profiles and determine their compatibility with each other. Users may see a compatibility score or percentage indicating how well they align with a potential match based on shared interests, values, and preferences.

  • Mutual Likes: If two users both like each other's profiles, it's considered a mutual match. Fumble notifies users when they've matched with someone, encouraging further interaction and conversation.

  • Message Feature: Once a match is made, users can start a conversation with each other through the messaging feature. This allows them to get to know each other better and build a connection before deciding to meet in person.

  • Profile Settings: Users have the option to customize their profile settings, such as their search preferences, privacy settings, and notification preferences. This ensures that each user's Fumble experience is tailored to their individual needs and preferences.

fumblemockup9

Post Comment

I implemented a unique feature that allows users to send messages to specific individuals before formally matching with them. Here's how it works:

Users have the ability to browse through profiles and posts shared by other users on the platform. When they come across a post that catches their interest, they can "like" the post, indicating their appreciation or agreement with the content shared.

However, this action of liking a post serves a dual purpose. By liking a post, users also send a direct message to the creator of the post, expressing their interest in connecting further. This initial message serves as an icebreaker, initiating a conversation between the two users.

Now, here's where it gets interesting. Although users have sent a message by liking the post, they have not yet formally matched with the other user. The message remains in a pending state, waiting for the recipient's response.

On the recipient's end, they receive a notification indicating that someone has liked their post and sent them a message. They have the option to view the message and the profile of the sender. If they're interested in the sender and wish to continue the conversation, they can choose to accept the match.

Accepting the match opens up the messaging feature, allowing both users to communicate freely. They can exchange messages, get to know each other better, and potentially plan to meet in person if they feel a connection.

This approach empowers users to make meaningful connections based on shared interests and allows for more organic interactions to occur. It also gives users more control over their messaging experience, as they can choose to accept or decline matches based on their preferences.

Overall, this feature adds an extra layer of depth to the Fumble experience, making it easier for users to initiate conversations and form connections with like-minded individuals.

fumblemockup10

Reporting Inappropriate Posts

In Fumble, users have the ability to report any posts that they deem inappropriate or offensive. This feature is designed to ensure a safe and respectful environment for all users.

If a user comes across a post that violates the community guidelines or contains objectionable content, they can take action by reporting the post. Reporting a post notifies the platform's moderators, who will review the reported content and take appropriate action, such as removing the post or warning the user responsible.

By empowering users to report inappropriate posts, Fumble reinforces its commitment to creating a positive and inclusive community where everyone can feel comfortable and respected.

fumblemockup11

Setting Preferences for Ideal Matches

In Fumble, users have the freedom to customize their preferences and define what they're looking for in an ideal match. This feature allows users to tailor their experience and focus on connecting with individuals who align with their interests and values.

Users can specify various preferences, such as:

  • Gender: Users can choose their preferred gender(s) of potential matches.
  • Age Range: Users can set the desired age range for potential matches.
  • Location: Users can specify the preferred location or distance range for potential matches.
  • Interests and Hobbies: Users can indicate their interests and hobbies, as well as the interests they're looking for in a match.
  • Ethnicity, Religion, and Other Characteristics: Users can express preferences related to ethnicity, religion, education level, and more.

By allowing users to customize their preferences, Fumble enhances the matching experience and increases the likelihood of meaningful connections. Users can focus their attention on profiles that meet their criteria, leading to more compatible matches and fulfilling interactions.

fumblemockup12

Commenting on User Prompts

In Fumble, users have the opportunity to engage with each other by commenting on prompts posted by other users. This feature encourages interaction and fosters conversations within the community.

When users come across a prompt that interests them, they can click on it to view the full post and read any existing comments. They then have the option to add their own comment, sharing their thoughts, opinions, or experiences related to the prompt.

Commenting on user prompts allows users to connect with others who share similar interests or viewpoints. It creates a sense of community and facilitates meaningful interactions between users, ultimately enhancing the overall Fumble experience.

By providing a platform for users to share and discuss their thoughts, Fumble promotes engagement and encourages users to form connections beyond just matching and messaging.

fumblemockup13

Chatting and Messaging with Matches

In Fumble, users can communicate with their matches through a built-in chat and messaging feature. This feature becomes available once both parties have mutually matched with each other, indicating a shared interest in connecting further.

Once a match is made, users can initiate a conversation by sending messages to each other. The chat interface allows for seamless and real-time communication, enabling users to exchange messages, share photos, and express themselves freely.

Additionally, Fumble provides transparency by showing users when their match was last seen online. This feature allows users to gauge the responsiveness of their match and know if their messages have been read. It enhances communication by providing valuable information about the other user's availability and activity on the platform.

By offering a robust chat and messaging experience, along with visibility into match activity, Fumble promotes genuine connections and fosters meaningful interactions between users. It creates a conducive environment for building relationships and getting to know each other better.

fumblemockup14

Loading Screens and Skeleton Views

In Fumble, I've implemented loading screens and skeleton views to enhance the user experience while fetching data from an external API. These features provide visual feedback to users, indicating that content is being loaded and preventing them from experiencing a blank or unresponsive interface.

  1. Loading Screens:

    • When users interact with sections of the app that require data from an API, such as browsing profiles or loading matches, a loading screen is displayed. This screen typically includes a visual indicator, such as a spinner or progress bar, along with a message informing users that data is being fetched.
    • Loading screens help manage user expectations and reduce frustration by informing users that the app is working to retrieve the requested information. They give users confidence that the app is responsive and actively processing their request.
  2. Skeleton Views:

    • In addition to loading screens, I've implemented skeleton views to provide a more visually appealing experience during data fetching. Skeleton views are placeholders that mimic the layout and structure of the content being loaded, creating the illusion of content being populated in real-time.
    • For example, when loading a profile or match list, skeleton views display empty shells representing profile cards or list items. These placeholders maintain the overall layout of the page and give users a preview of the content that will eventually load.
    • Skeleton views help reduce perceived loading times and keep users engaged by providing a sense of progress and continuity in the app's interface. They create a smoother transition between loading states and improve the overall user experience.

By incorporating loading screens and skeleton views, I ensure that users stay informed and engaged while waiting for data to load from external sources. These features contribute to a more polished and user-friendly app, enhancing satisfaction and usability for our users.

#Loading Screens:1 fumblemockup7 #Loading Screens:2 fumblemockup2

Conclusion

In conclusion, Fumble is a project that I am truly proud of and excited to see come to fruition. With its innovative features, user-friendly interface, and commitment to enhancing the online dating experience, Fumble has the potential to revolutionize how people connect and form meaningful relationships.

Throughout the development process, I've poured my passion and dedication into every aspect of the app, from conceptualization to implementation. While there may still be work to be done, I am confident that with continued effort and perseverance, Fumble will become a fully realized platform that users will love and appreciate.

I am grateful for the opportunity to work on this project and for the support of everyone involved in bringing it to life. With each milestone achieved and every improvement made, I am one step closer to realizing my vision for Fumble. I look forward to the journey ahead and to seeing Fumble thrive as a leading platform for individuals seeking genuine connections in the modern dating world.

fumblemockup1

Backend API and Database Schema

For Fumble, I've chosen to leverage Google Firebase as the backend API and database solution. Firebase provides a comprehensive set of tools and services for building scalable and reliable applications, making it an ideal choice for managing user data, authentication, and real-time updates.

Firebase Features:

  1. Authentication: Firebase Authentication allows users to securely sign up, sign in, and manage their accounts using email/password, social media logins (e.g., Google, Facebook), or custom authentication methods. This ensures that user data is protected and only accessible to authorized users.

  2. Realtime Database: Firebase Realtime Database is a NoSQL cloud database that enables real-time data synchronization across clients. It stores data as JSON and provides seamless integration with frontend frameworks like SwiftUI. This allows for efficient data storage, retrieval, and synchronization, ensuring that users always have access to the latest information.

  3. Cloud Firestore: Alternatively, Firebase offers Cloud Firestore, a flexible, scalable database for mobile, web, and server development. Firestore provides powerful querying capabilities, offline data support, and real-time updates, making it suitable for complex data structures and high-performance applications.

  4. Cloud Functions: Firebase Cloud Functions allows for serverless computing, enabling the execution of backend code in response to events triggered by Firebase services or HTTP requests. This allows for custom business logic, data validation, and integration with third-party APIs.

Database Schema:

In Fumble, the database schema will consist of collections and documents organized to efficiently store and retrieve user data. Here's a high-level overview of the database schema:

  • Users Collection: Contains user profiles, including information such as username, email, profile picture, interests, preferences, and match history.
  • Matches Collection: Tracks mutual matches between users, facilitating communication and interaction.
  • Messages Collection: Stores messages exchanged between matched users, enabling real-time chat functionality.
  • Reports Collection: Logs reports of inappropriate content or user behavior, allowing for moderation and enforcement of community guidelines.
  • Settings Collection: Stores user-specific settings and preferences, such as notification preferences and account privacy settings.

By leveraging Google Firebase as the backend API and database solution, Fumble can deliver a robust and scalable platform for users to connect, interact, and form meaningful relationships.

Database/firebase

Firebase Icon

About the Author

  • Made with love 💖 by @zabloncharles

How to Contribute

  1. Fork the Repository: Start by forking the repository to your GitHub account.
  2. Clone the Repository: Clone the forked repository to your local machine.
  3. Create a Branch: Create a new branch for your contribution.
  4. Make Changes: Make your desired changes to the codebase.
  5. Commit Changes: Commit your changes with descriptive commit messages.
  6. Push Changes: Push your changes to your forked repository.
  7. Open a Pull Request: Once you've pushed your changes, open a pull request on the original repository.

Guidelines

  • Ensure your code follows the project's coding standards and conventions.
  • Include tests for any new features or bug fixes.
  • Be respectful and constructive when discussing contributions with others.
  • Feel free to reach out to maintainers if you need guidance or assistance.

Thank you for contributing to Fumble and helping make it a better platform for everyone!

License

This project is licensed under the MIT License.

About

Fumble is a user-friendly dating app designed for those who may feel uncertain or inexperienced in the world of dating. It provides a supportive platform where users can connect, explore, and form meaningful relationships with ease.