Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

11 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🦭 Walrus - AI-Powered Productivity Hub

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.


πŸš€ Key Features

  • πŸ” JWT Authentication: Secure, encrypted signup and sign-in flows using bcryptjs password 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.

πŸ› οΈ Tech Stack

  • 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)

πŸ“ Project Structure

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

βš™οΈ Quick Installation

Prerequisites

  • Node.js (v16+ recommended)
  • MongoDB (Local server or MongoDB Atlas free cloud cluster)
  • Groq API Key (Get a free key from the Groq console)

Step 1: Clone the Repository

git clone https://github.com/your-username/walrus.git
cd walrus

Step 2: Configure Environment Variables

Create a .env file inside the backend folder:

# Navigate to backend
cd backend
touch .env

Add 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_key

Step 3: Install Dependencies

Run dependency installs in both root and backend folders:

For Backend:

cd backend
npm install

For Frontend (Root):

# Return to root directory
cd ..
npm install

⚑ Running the Application

1. Launch Backend Server

In your terminal, navigate to the backend folder and start the dev server (running on port 5000):

cd backend
npm run dev

2. Launch Frontend Application

Open a separate terminal window at the project root folder and start Vite (running on port 5173):

npm run dev

Visit http://localhost:5173/ in your browser to experience Walrus!


πŸ“„ License

This project is licensed under the MIT License.

About

🦭 An AI-powered productivity hub built with the MERN stack.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages