How davidenicoletta/clothual works
Clothual is an Android closet-organizer app. The principal workflow is: a user authenticates, enters the core navigation, captures or browses clothing, and stores or retrieves wardrobe and outfit data. Distinct stages are authentication, feature navigation, wardrobe management, outfit/calendar use, personal statistics, and map-based shopping. The internal ViewModel-to-Repository layer mediates feature requests to Room and Cloud Firestore. The graph preserves README-documented Google authentication, OpenStreetMap, favorites, categories, history, settings, and profile capabilities. Wiring is based on the README and repository tree; sampled implementation bodies were not provided.
Components 18
Authentication
- Welcome Screens
app/src/main/java/com/example/clothual/UI/welcome - Authentication Repository
app/src/main/java/com/example/clothual/Data/Repository/Welcome/AuthenticationRepository.java
App Features
- Core Navigation
app/src/main/java/com/example/clothual/UI/core/CoreActivity.java - Home Dashboard
app/src/main/java/com/example/clothual/UI/core/Home/HomeFragment.java - Categories & Favorites
app/src/main/java/com/example/clothual/UI/core/Categories/CategoryModel.java - Photo Capture
app/src/main/java/com/example/clothual/UI/core/Photo/PhotoFragment.java - Calendar Outfits
app/src/main/java/com/example/clothual/UI/core/Calendar/CalendarFragment.java - Profile & Statistics
app/src/main/java/com/example/clothual/UI/core/Personal/PersonalFragment.java - Nearby Shops Map
app/src/main/java/com/example/clothual/UI/core/Map/MapFragment.java
Application Logic
- Feature ViewModels
app/src/main/java/com/example/clothual/UI/core - Core Repository
app/src/main/java/com/example/clothual/Data/Repository/Core/CoreRepository.java - Wardrobe Models
app/src/main/java/com/example/clothual/Model/Clothual.java
Persistence
- Room Database
app/src/main/java/com/example/clothual/Data/Database/RoomDatabase.java
External Services
- Firebase Auth
- Google Sign-In
- Cloud Firestore
- OpenStreetMap
Other components
- User
Connections 27
- User → Welcome Screens: starts
- Welcome Screens → Authentication Repository: submits credentials
- Authentication Repository → Firebase Auth: authenticates
- Authentication Repository → Google Sign-In: uses sign-in
- Welcome Screens → Core Navigation: opens after auth
- Core Navigation → Home Dashboard: navigates
- Core Navigation → Categories & Favorites: navigates
- Core Navigation → Photo Capture: navigates
- Core Navigation → Calendar Outfits: navigates
- Core Navigation → Profile & Statistics: navigates
- Core Navigation → Nearby Shops Map: navigates
- Home Dashboard → Feature ViewModels: requests data
- Categories & Favorites → Feature ViewModels: requests clothing
- Photo Capture → Feature ViewModels: submits photos
- Calendar Outfits → Feature ViewModels: requests outfits
- Profile & Statistics → Feature ViewModels: requests statistics
- Nearby Shops Map → Feature ViewModels: requests location
- Feature ViewModels → Core Repository: delegates queries
- Core Repository → Room Database: queries locally
- Core Repository → Cloud Firestore: stores remotely
- Core Repository → Wardrobe Models: maps records
- Feature ViewModels → Home Dashboard: returns data
- Feature ViewModels → Categories & Favorites: returns data
- Feature ViewModels → Photo Capture: returns status
- Feature ViewModels → Calendar Outfits: returns outfits
- Feature ViewModels → Profile & Statistics: returns statistics
- Nearby Shops Map → OpenStreetMap: loads map