AI-powered memory tracking using the Ebbinghaus Forgetting Curve.
RecallIQ/
├── client/ ← Frontend (Next.js)
└── server/ ← Backend (Node.js + Express)
Open MySQL Workbench and run:
CREATE DATABASE recalliq;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'recalliq123';
FLUSH PRIVILEGES;cd server
npm install
npx prisma generate
npx prisma db push
npm run devServer runs on http://localhost:5000
cd client
npm install
npm run devApp runs on http://localhost:3000
DATABASE_URL="mysql://root:recalliq123@localhost:3306/recalliq"
JWT_SECRET="recalliq123secret"
JWT_EXPIRES_IN="7d"
CLIENT_URL="http://localhost:3000"
PORT=5000
NODE_ENV=development
cd server
npm run db:generate
npm run db:pushOpen TWO terminals:
Terminal 1 — Backend:
cd server
npm run dev
# Running on http://localhost:5000Terminal 2 — Frontend:
cd client
npm run dev
# Running on http://localhost:3000Open http://localhost:3000 — done!
cd client
npx vercel- Push code to GitHub
- Go to railway.app
- New Project → Deploy from GitHub → select server folder
- Add environment variables
Add MySQL plugin in Railway and update DATABASE_URL
- / → Landing page
- /login → Login
- /register → Register
- /dashboard → Main dashboard with forgetting curve
- /dashboard/upload → Upload PDFs, URLs, add concepts
- /dashboard/graph → Knowledge graph
- /dashboard/quiz → AI quiz center
- /dashboard/revision → Revision queue
- /dashboard/concepts → All concepts
- /dashboard/analytics → Charts and analytics
- /dashboard/search → Semantic search
- /dashboard/settings → Profile settings '@
- Frontend: Next.js 14, React, Tailwind CSS, Recharts
- Backend: Node.js, Express, Prisma ORM
- Database: MySQL
- Auth: JWT + HTTP-only cookies
- AI: OpenAI GPT-3.5 (optional)