Engram is a personalized AI-powered chat application that reflects your personality by analyzing diary entries. It consists of a React frontend and a Node.js backend and uses Groq's LLaMA 3 for generating intelligent, personalized conversations.
- 🔐 User authentication (Sign Up / Sign In)
- 🧬 Personality extraction from diary entries
- 💬 AI-powered chat with Groq’s LLaMA 3
- 🌐 Secure token handling
- 📦 Unified startup using one command
- Frontend: React, Styled Components
- Backend: Node.js, Express, JWT, Groq API
- AI Model: LLaMA 3 via Groq API
- Storage: localStorage (tokens), database for users/diaries
- Dev Tooling:
concurrently,nodemon
git clone https://github.com/your-username/engram.git
cd engramnpm install # root level (for concurrently)
cd Backend
npm install # backend dependencies
cd ../engram-complete
npm install # frontend dependenciesMONGO_URI=<YOUR-MONGO-URI>
JWT_SECRET=<YOUR-JWT_SECRET>
API=<YOUR-AI-API-KEY>
VITE_API_KEY=<Your-AI-API-KEY>
From the root directory:
npm run startThis will:
- Start the backend using
nodemon(on port 5000) - Start the frontend using
npm start(on port 3000)
💡 Make sure both
Backendandengram-completehave validstartscripts in theirpackage.json.
In the project root:
"scripts": {
"start": "concurrently \"npm run server\" \"npm run client\"",
"server": "cd Backend && npm start",
"client": "cd engram-complete && npm start"
}- User signs up or logs in.
- Diary entries (future feature) are used to extract a personality.
- Chat requests are sent to the backend, which generates LLaMA 3 prompts based on that personality.
- LLaMA 3 replies through the Groq API, creating personalized conversations.
- Port in use (EADDRINUSE): Make sure port 5000 (backend) isn't already occupied.
- Frontend script missing: Ensure
"start"exists inengram-complete/package.json.
The project comes under MIT License.