Talkative is a full-stack social media application similar to Instagram, featuring user profiles, posts, an activity feed, and real-time chat. The project consists of an Android application built using modern Jetpack components and a Java Spring Boot backend using JWT authentication with cookies and MongoDB.
The system is composed of:
- Kotlin
- Jetpack Compose UI
- MVVM Architecture
- Hilt Dependency Injection
- Retrofit + OkHttp
- OkHttp WebSocket for real-time chat
- Room Database (local caching)
- SQL queries for local persistence
- Cookie-based authentication via cookie Jar(JWT received from backend)
- Coil for image loading
- Navigation Component (Two Graphs: Auth + Main)
- Multipart uploads for profile images and posts
- Spring Boot
- Spring MVC
- Spring Security (JWT Authentication)
- JWT sent as HTTP-only cookie
- MongoDB as primary database
- Spring WebSocket for real-time messaging
- Multipart file handling for images
- RESTful API structure
- Docker
- Secure login using JWT (stored in HTTP-only cookie)
- Register new account
- Automatic session management on the Android side using CookieJar
- Cookie persistence across app restarts
- Edit profile: avatar, cover photo, bio, display name
- Multipart upload with optional fields
- View other users' profiles
- Create posts with image and caption
- View feed
- Like and comment system
- Local caching of user details using Room Database
- OkHttp WebSocket client in Android
- Spring WebSocket backend
- Real-time messaging between users
Below are some UI previews of the Talkative Android App.
![]() | ![]() | ![]() |
![]() | ![]() | ![]() |
![]() | ![]() | ![]() |
![]() | ![]() | ![]() |
![]() | ![]() | ![]() |
![]() | ![]() |
















