Welcome to my learning journey, where spaghetti code meets Riverpod, Supabase, and pure developer chaos! This project was my first dive into building an app with some amazing features and, naturally, a lot of "Oh, that's how you don't do it!" moments. 🍝
This app marks the phase of my life where I boldly ventured into the world of Riverpod for state management and Supabase for backend magic. While the code might resemble a plate of spaghetti, it's a testimony to how fun and enlightening learning can be.
Disclaimer: The code is a mix of "What was I thinking?" and "Whoa, that actually works!" moments. Enjoy at your own risk. 😅
Also, fun facts:
- I completely misunderstood how databases work at first. I treated Supabase, a structured SQL database, like it was some sort of NoSQL playground. Turns out, SQL doesn't appreciate being ignored—lesson learned! 😂
- Instead of securely storing database credentials in an
.env
file, I went full "beginner mode" and hardcoded them right into the app files. Future me cringes every time I think about it. 😅 - DRY (Don't Repeat Yourself)? What even is that? I never met this person in my life. Why not copy-paste the same code all over the place and grow a massive codebase of identical lines? Turns out, maintaining that is not as fun as it sounds. 😆
-
Authentication:
- # and registration screens.
- Supabase-powered authentication.
-
Community Management:
- Create and manage communities.
- Add moderators and edit community settings.
-
AI Magic:
- AI-powered image labeling and generation.
- Chatbot features with animated responses.
-
Chat System:
- Real-time messaging with custom widgets.
- Swipeable actions and reply functionality.
-
Post and Feed Management:
- Add posts and comment on them.
- Tag-based feed filtering.
-
User Profiles:
- Edit profiles with custom avatars.
- View user-specific feeds, stories, and liked posts.
-
Dash Feature:
- A Pinterest-like dashboard to discover new content.
- AI-powered post classification and recommendations for exploring fresh posts.
-
Say the Truth (STT) Feature:
- Send anonymous messages to anyone to express your thoughts.
- No worries about revealing your identity—just say what you’re thinking!
-
Notifications:
- Push notifications for updates.
- Notifications for community activities.
- Frontend: Flutter, Riverpod
- Backend: Supabase
- State Management: Riverpod
- Utilities: Firebase, Giphy API, Custom Utils
- Flutter SDK installed on your system.
- A Supabase account with a configured project.
- Clone the repository:
git clone https://github.com/MultiX0/viblify_app.git
- Navigate to the project directory:
cd viblify_app
- Install dependencies:
flutter pub get
- Run the app:
flutter run
Coming Soon! (Because I forgot to take them while building. Classic me.)
- Shoutout to Riverpod and Supabase for being awesome tools.
- Thanks to my patience (and caffeine) for enduring hours of debugging spaghetti code.
- A big thank you to SQL tutorials for rescuing me after I tried to treat Supabase like a NoSQL database. Who knew relational databases like relations?
- Apologies to the
.env
file for not using it properly at the start. I promise to do better next time. - DRY (Don't Repeat Yourself)? Nah, I went full WET (Write Everything Twice) mode. Copy-pasting was my mantra until I realized that debugging 10 places for the same issue is a nightmare.
- To my future self: "You've come a long way since this project. Be proud."
Feel free to explore, laugh, and perhaps shed a tear over the beauty of learning. 😄 Happy coding!