Walrus is a modern, full-stack MERN (MongoDB, Express, React, Node.js) task management assistant integrated with Groq SDK utilizing the state-of-the-art Llama-3.3-70b-versatile model to deliver real-time intelligent suggestions, priority insights, and interactive productivity coaching.
- π JWT Authentication: Secure, encrypted signup and sign-in flows using
bcryptjspassword hashing and token-based session persistence. - π Multi-Tenant Task Board: Strict user-level database isolation. Add, delete, rename, search, and toggle tasks in real-time.
- π§ Groq AI Suggestions: One-click analysis of active tasks to categorize workflows (Study, Career, Personal) and recommend missing steps or useful next objectives.
- π¬ Interactive AI Coach ("Ask Walrus"): Ask questions directly to your AI coach (e.g. "How can I prepare for my upcoming DBMS exam?"). It automatically contextualizes answers based on your active task list.
- π Analytics Dashboard: Track active tasks, completion rate metrics, and category breakdowns.
- π¨ Premium UI/UX: Crafted CSS styling featuring glassmorphism design layouts, harmonious dark/light themes, animations, and responsive layouts.
- Frontend: React (Vite), Lucide Icons, Vanilla CSS Design System
- Backend: Node.js, Express.js, JSON Web Tokens (JWT)
- Database: MongoDB Atlas, Mongoose ODM
- AI Service: Groq SDK (
llama-3.3-70b-versatile)
walrus/
βββ backend/
β βββ config/
β β βββ db.js # MongoDB Mongoose connection
β βββ controllers/
β β βββ authController.js # JWT Signup & Login handlers
β β βββ taskController.js # CRUD & AI Coach handlers
β βββ middleware/
β β βββ authMiddleware.js # JWT protective router interceptor
β βββ models/
β β βββ Task.js # Task Mongoose schema (User ref)
β β βββ User.js # User Mongoose schema (Bcrypt pre-save)
β βββ routes/
β β βββ authRoutes.js # Authentication route endpoints
β β βββ taskRoutes.js # Protected task route endpoints
β βββ services/
β β βββ groqService.js # Groq SDK controller
β βββ .env # Credentials configurations (git ignored)
β βββ package.json # Node backend packages configuration
β βββ server.js # Express entrypoint
βββ public/
β βββ walrus.jpeg # App branding logo asset
βββ src/
β βββ components/
β β βββ Insights.jsx # AI Priority & Ask Walrus coach panel
β β βββ Suggestions.jsx # AI Recommended Tasks quick-add panel
β β βββ TaskInput.jsx # Task form submit component
β β βββ TaskItem.jsx # Checkboxes, inline edit, delete
β β βββ TaskList.jsx # Search filters & mapping lists
β βββ pages/
β β βββ Auth.jsx # Sign-in / Sign-up layout card
β β βββ Dashboard.jsx # Layout orchestrator & API fetcher
β βββ App.jsx # Theme triggers & Toast notification shell
β βββ index.css # Design tokens, variables & animations
β βββ main.jsx # React DOM render entry
βββ index.html # HTML entry with customized favicon
βββ package.json # Frontend Vite package specifications
βββ vite.config.js # Vite compilers parameters
- Node.js (v16+ recommended)
- MongoDB (Local server or MongoDB Atlas free cloud cluster)
- Groq API Key (Get a free key from the Groq console)
git clone https://github.com/your-username/walrus.git
cd walrusCreate a .env file inside the backend folder:
# Navigate to backend
cd backend
touch .envAdd the following key-value pairs into backend/.env:
PORT=5000
MONGO_URI=mongodb+srv://<db_username>:<db_password>@yourcluster.mongodb.net/walrus?retryWrites=true&w=majority
GROQ_API_KEY=gsk_your_groq_api_key_goes_here
JWT_SECRET=your_super_secret_jwt_encryption_keyRun dependency installs in both root and backend folders:
For Backend:
cd backend
npm installFor Frontend (Root):
# Return to root directory
cd ..
npm installIn your terminal, navigate to the backend folder and start the dev server (running on port 5000):
cd backend
npm run devOpen a separate terminal window at the project root folder and start Vite (running on port 5173):
npm run devVisit http://localhost:5173/ in your browser to experience Walrus!
This project is licensed under the MIT License.