-
Suryansh Singh Tomar authoredSuryansh Singh Tomar authored
Monumento
Student - Suryansh Singh Tomar
Links
- Project : https://gitlab.com/aossie/monumento
- Working Demo : https://drive.google.com/file/d/1aU6B8xHfNAvyZBJTXg8S3ckUSHrYb4VJ/view?usp=sharing
Monumento
The goal of this year's project was
- To plan and execute the migration of pre-existing codebase to BLoC (Business Logic and Components) Architecture and State management pattern.
- To design and implement UI/UX, Database Model and Business logic for a Social Media Platform for Travellers section.
- To make the app compatible with iOS by writing native swift code and using Flutter's methods channels.
Work done
- New UI/UX of Home Screen
- Implementation of Feed Screen where a user can view posts of users they follow
- Implementation of Comments Screen of a post
- Implementation of Notifications Screen of a user
- Implementation of New Post Screen with the option to input title, location, and image from gallery/camera
- Implementation of Discover Screen for exploring global posts
- Implementation of Follow Unfollow Business Logic and UI
- Implementation of Profile Screen
- Implementation of Profile Form when signing in for the first time
- Replaced deprecated Poly links of 3d model with new Firebase Storage Links
- Implementation of Models, Entities, and Repositories
- Implementation of BLoC architecture and separate UI, logic and data layer.
- Implementation of lazy - loading on scroll for the lists in Feed, Search, Comment, Profile and Discover screens.
- Data fed and structured in Firestore as the database for app
- Replaced deprecated poly links with firebase storage links
Initially, the project ideas were only to add a Social Media section in the app and to make the app compatible with iOS, but I also saw the need to refactor the code into a scalable and maintainable architecture. Therefore, I proposed the idea to migrate the codebase to BLoC architecture as well. Implementing BLoC architecture is not as punishing as it was before the release of flutter_bloc package.
The most crucial part of implementing the Social Media section was planning and designing the Database Model according to the queries I was going to use. After that, I didn't encounter many problems implementing the section.
Deep view into the technology.
I mainly worked on the Flutter module of the Native Android app. I kept the use of packages to a minimum to eliminate the dependencies of the app.
- flutter_bloc - Widgets that make it easy to integrate blocs and cubits into Flutter
- equatable - Used to compare objects in dart
- alamofire - Used for networking in swift
Prominent Merge Requests
-
Merge request !67 - Migrated the app to BLoC architecture - Status: Merged
-
Merge request !69 - Added Models and Entities - Status: Merged
-
Merge request !70 - Implement NewPostScreen, and create Social Repository and Models - Status: Merged
-
Merge request !71 - Implement Feed Screen and BLoCs - Status: Merged
-
Merge request !72 - Implement Discover Screen and BLoCs - Status: Merged
-
Merge request !73 - Implement Profile Screen and BLoCs - Status: Merged
-
Merge request !74 - Implement Comments Screen and BLoCs - Status: Merged
-
Merge request !75 - Implement Monumento Screen and Follow-Unfollow BLoC - Status: Merged
-
Merge request !76 - Implement Notification Screen and BLoCs - Status: Merged
-
Merge request !77 - Improve Auth Flow - Status: Merged
-
Merge request !78 - Navigation and UI Completed - Status: Merged
-
Merge request !79 - Final Touches and Code Refactoring - Status: Merged
-
Merge request !80 - Replaced Poly Links with Firebase Storage links
-
Merge request !61 - iOS implementation - Status: Open
Future Possible Work
- Refactor the code to get dynamic monuments model data from the database
- Push notifications using FCM or any other service
I want to thank the AOSSIE community and my very supportive mentors, Jaideep Prasad, Thuvarakan Tharmarajasingam, and Tushar Kumar Singh. Being a part of this incredible community feels great. I have learnt a lot in these past 3-4 months and would continue contributing as much as I can.