Pulse is Android application designed to curate and synthesize complex engineering articles into digestible insights. By bridging a robust Kotlin/Compose frontend with a modern Express/Prisma backend, it delivers a seamless, native reading experience enhanced by on-demand AI summarization.
Android (Kotlin/Compose/Room)
β
βΌ (REST API)
Express API (TypeScript)
β
βββββββ΄ββββββ
βΌ βΌ
PostgreSQL Gemini AI
(Neon) (LLM Summaries)
- AI Quota Optimization: Implemented a Lazy-Loading & Caching strategy for LLM summaries to reduce API costs by 90% and gracefully handle throttling or quota exhaustion.
- Offline-First Sync: Engineered a local SQLite (Room) persistence layer to allow seamless reading during network outages, complete with a reactive offline-fallback UI.
- Modern UI/UX: Developed a custom 'IDE-Chic' design system with Skeleton/Shimmer loading, advanced WebView CSS injection, and animated Compose states for high perceived performance.
- Mobile: Kotlin, Jetpack Compose, Retrofit, Room, Coil, Coroutines/Flow
- Backend: Node.js, Express, TypeScript, Prisma ORM
- Database: PostgreSQL (Neon Serverless)
- AI Integration: Google Gemini (Generative Language API)
- Navigate to the
server/directory:cd server - Install dependencies:
npm install - Configure your
.envfile withDATABASE_URLandGEMINI_API_KEY. - Run migrations:
npx prisma db push - Start the dev server:
npm run dev
- Open the
client/folder in Android Studio. - Ensure your emulator or physical device is connected.
- Sync the Gradle project and hit Run. (Note: To test offline capabilities, turn on Airplane Mode after loading the initial feed).