Malimind is a high-fidelity AI Intelligence Layer and Financial Operator designed for the modern economy. It combines sovereign capital management, synergy circles, and proximity-based job marketplaces into a single, high-performance "Elite" experience.
- Elite Obsidian UI: A Stripe-inspired, high-contrast dark theme with glassmorphism and smooth motion.
- Intelligence Layer: Context-aware AI assistant for cash flow optimization and career growth.
- Synergy Circles: Collaborative liquidity pools with real-time growth analytics.
- Proximity Marketplace: Hyper-local job and talent matching with integrated hiring workflows.
- Backend: NestJS, Prisma, PostgreSQL, OpenAI (with Sovereign Data Protocols)
- Frontend: React Native (Expo), TypeScript, Zustand, NativeWind (Obsidian Design System)
- Visuals: Framer-style animations, SVG Data Curves, and Haptic Feedback.
- Node.js (v18+)
- PostgreSQL running locally or remotely.
- Navigate to backend:
cd backend npm install - Configure Environment:
Create
backend/.env:# PostgreSQL connection string DATABASE_URL="postgresql://user:password@localhost:5432/malimind?schema=public" # JWT Secret JWT_SECRET="super_secret_malimind_key" # OpenAI Key for AI Chat functionality OPENAI_API_KEY="sk-..."
- Run Database Migrations & Seed:
npx prisma generate npx prisma db push npm run seed
- Start Backend Server:
The server runs on http://localhost:3000. Check Swagger docs at
npm run start:dev
http://localhost:3000/docs.
- Navigate to frontend:
cd frontend npm install - Start the Expo server:
npm start
- Options to run:
- Android Emulator: Press
ain the terminal to launch. - iOS Simulator: Press
iin the terminal to launch. - Physical Device: Download the "Expo Go" app on your phone and scan the QR code.
- Android Emulator: Press
Note: If on a physical phone, you must change BASE_URL in frontend/src/api/client.ts to your machine's local IP address (e.g., http://192.168.1.5:3000/api/v1) instead of localhost.
Register:
curl -X POST http://localhost:3000/api/v1/auth/register \
-H "Content-Type: application/json" \
-d '{"name":"John Kamau","email":"john@example.com","password":"password123"}'Login:
curl -X POST http://localhost:3000/api/v1/auth/login \
-H "Content-Type: application/json" \
-d '{"email":"john@example.com","password":"password123"}'Add Income: (Replace Token)
curl -X POST http://localhost:3000/api/v1/transactions \
-H "Authorization: Bearer <YOUR_TOKEN>" \
-H "Content-Type: application/json" \
-d '{"type":"income","amount":15000,"category":"Salary"}'Get Dashboard:
curl -X GET http://localhost:3000/api/v1/users/dashboard \
-H "Authorization: Bearer <YOUR_TOKEN>"AI Chat:
curl -X POST http://localhost:3000/api/v1/ai/chat \
-H "Authorization: Bearer <YOUR_TOKEN>" \
-H "Content-Type: application/json" \
-d '{"prompt":"Can I spend 5000 today?"}'M-Pesa STK Push Deposit:
curl -X POST http://localhost:3000/api/v1/mpesa/deposit \
-H "Authorization: Bearer <YOUR_TOKEN>" \
-H "Content-Type: application/json" \
-d '{"phone":"254712345678", "amount":10}'(Ensure MPESA_CONSUMER_KEY and MPESA_CONSUMER_SECRET are properly set in .env)
- GraphQL: Migrate from REST to GraphQL for granular data fetching.
- Advanced AI: Implement RAG (Retrieval-Augmented Generation) for personalized financial education articles.
- Push Notifications: Set up Firebase Cloud Messaging for Goal/Chama reminders.
- Real-time Chamas: WebSockets for real-time group chat and contribution updates.