A security-focused social media application built to demonstrate robust authentication flows. It combines strict security practices, like OTP verification and automatic token management, with a polished, responsive Material 3 user interface.
- Email-based registration with OTP verification
- JWT authentication with automatic access-token refresh
- Password rules and server-side username availability checks
- Session persistence using Jetpack DataStore
- Feed with tag-based filtering and relative timestamps
- Post creation with text input and tag selection
- Like posts and view the list of users who liked a post
- Comment on the posts, with timestamps
- Activity log for login, posts, comments and likes
- HMAC-signed likes
- Hashed user identifiers for incognito views
- Language: Kotlin
- UI Framework: Jetpack Compose (Material 3)
- Architecture: MVVM with state flow
- Networking: Retrofit + OkHttp (interceptors & authenticators)
- Local Storage: Jetpack DataStore
- Serialization: Gson / kotlinx.serialization
- Backend: SpringBoot Backend Spring Boot + MongoDB
- Clean separation across UI, data, and domain layers
- Repository pattern for data access
- Centralized authentication through a custom OkHttp Authenticator
- ViewModels as the single source of truth for UI state
- Navigation flow avoiding race conditions during logout
- Reusable Compose components for posts, dialogs, and tag selectors
This project is licensed under the MIT License.