This is a React Native mobile application built with Expo for the Sentient Mobile Assignment. It provides a pixel-perfect dark-themed UI, a categorized list of AI agents, and a dynamic chat interface powered by the OpenAI API.
- Expo (React Native framework)
- TypeScript
- Zustand (local + persisted state)
- FlashList (high-performance list)
- React Native Reanimated (animations)
- OpenAI API (dynamic chat responses)
- React Native Paper (UI components and icons)
- Chat with AI agents using real-time OpenAI API.
- Typing animation and loader while AI is generating a response.
- Messages are persisted locally per agent using Zustand.
- Scrollable list of agents grouped by categories.
- Supports filtering and animated chips.
- Fully dark-mode UI matching Figma spec.
- Sender/receiver bubbles
- Regenerate button
- AI typing simulation
- Zustand handles:
- Chat history
- Selected category
- Agent metadata
- Persisted to disk using middleware
project/
- App.tsx
- app.json
- babel.config.js
- jest.setup.js
- metro.config.js
- package.json
- tsconfig.json
- .env
- .gitignore
├── assets/ # Fonts, images, icons
├── src/
│ ├── components/ # Reusable UI elements
│ ├── screens/ # Screens (Home, Profile, Chat, etc.)
│ ├── navigation/ # Navigation stacks
│ ├── stores/ # Zustand stores (e.g., useChatStore.ts)
│ ├── hooks/ # Custom React hooks
│ ├── utils/ # Prompt utils, response utils
│ ├── types/ # TypeScript type definitions
│ └── consts/ # Constants and static configs
- Node.js 18+
- Expo CLI
- OpenAI API Key
git clone https://github.com/Rishu2505/Sentient.git
cd sentient
npm installCreate a .env file in the root:
OPENAI_API_KEY=your-openai-api-keyYour key will be used to dynamically fetch responses in the agent chat.
npx expo startScan the QR code with Expo Go or launch on a simulator.
Chat responses are fetched dynamically using OpenAI’s GPT model. The prompt is constructed based on the agent’s configuration and the user's question. Zustand handles message persistence per agent.
- Offline caching
- User-auth & saved chat history in backend
- In-app agent editing
- Voice assistant integration
Mukesh Kumar
Senior React Native Engineer
LinkedIn | Portfolio
This project is for assessment/demo purposes only.
