Learnly is a smart goal-tracking application designed to help you achieve your dreams by breaking them down into manageable steps. Powered by Google's Gemini 2.0 Flash AI, Learnly automatically generates actionable micro-goals from your main objectives and provides intelligent categorization to keep you organized.
- 🤖 AI-Powered Goal Breakdown: Simply enter your main goal, and our AI (Gemini 2.0) will generate a structured list of micro-goals (subtasks) to guide you step-by-step.
- 📂 Smart Categorization: Goals are automatically classified into categories like Learning, Career, Health, Personal, and Other for better organization.
- 📊 Visual Analytics: Track your progress with interactive charts and insights powered by Recharts.
- 🔐 Secure Authentication: Robust user management with JWT-based authentication (Login, Register, Password Management).
- 🎨 Modern UI/UX: A sleek, responsive interface built with React, TailwindCSS, and Radix UI, featuring smooth animations with Framer Motion.
- ✅ Task Management: Create, update, and delete goals and subtasks with ease.
- Framework: React + Vite
- Styling: TailwindCSS
- UI Components: Radix UI, Lucide React (Icons)
- Animations: Framer Motion
- Charts: Recharts
- State/Data: Axios, React Router DOM, Sonner (Toasts)
- Runtime: Node.js
- Framework: Express.js
- Database: MongoDB (Mongoose ODM)
- AI Integration: Google GenAI SDK (Gemini 2.0 Flash)
- Authentication: JWT (JSON Web Tokens), bcryptjs
Follow these instructions to set up the project locally.
- Node.js (v18+ recommended)
- MongoDB (Local or Atlas connection string)
- Google Gemini API Key (Get one here)
git clone https://github.com/yourusername/learnly.git
cd learnlyNavigate to the backend directory and install dependencies:
cd backend
npm installCreate a .env file in the backend directory with the following variables:
PORT=3000
MONGODB_URI=your_mongodb_connection_string
JWT_SECRET_KEY=your_jwt_secret_key
GEMINI_API_KEY=your_google_gemini_api_keyStart the backend server:
npm start
# or for development
npm run devThe server should be running on http://localhost:3000
Open a new terminal, navigate to the frontend directory, and install dependencies:
cd frontend
npm installCreate a .env file in the frontend directory:
VITE_API_URL=http://localhost:3000Start the frontend development server:
npm run devThe application should now be accessible at http://localhost:5173 (or the port shown in your terminal).
Learnly/
├── backend/ # Node.js/Express Backend
│ ├── src/
│ │ ├── controllers/ # Request handlers
│ │ ├── models/ # Mongoose schemas
│ │ ├── routes/ # API routes
│ │ ├── services/ # AI service logic
│ │ └── db/ # Database connection
│ └── server.js # Entry point
│
├── frontend/ # React Frontend
│ ├── src/
│ │ ├── api/ # Axios setup & endpoints
│ │ ├── components/ # Reusable UI components
│ │ ├── pages/ # Main application pages (Dashboard, Goals, etc.)
│ │ └── context/ # React Context (Auth, etc.)
│ └── index.css # Tailwind imports
│
└── README.md # Project Documentation