Skip to content

Latest commit

Β 

History

History
134 lines (106 loc) Β· 4.78 KB

README.md

File metadata and controls

134 lines (106 loc) Β· 4.78 KB

Notely πŸš€

Notely is an AI-powered EdTech SaaS platform designed to enhance the learning experience. It allows students and professionals to instantly generate high-yield exam notes, project documentation, revision points, and visual data representations (charts & diagrams) in seconds.

Featuring a modern, distraction-free interface, Notely keeps you focused on what matters most: your learning.


✨ Features

  • 🧠 AI Note Generation: Generate structured, exam-oriented notes, revision points, and long/short questions instantly.
  • πŸ“Š Visual Learning: Automatically generate data-driven charts (Pie, Bar, Line) using Recharts and flow diagrams using Mermaid.js.
  • πŸ“₯ Instant PDF Export: Download your generated notes as a clean, formatted PDF for offline studying and printing.
  • πŸ” Seamless Authentication: Secure, one-click login powered by Firebase Google Auth.
  • πŸ“š History & Organization: Automatically save your past generated notes to a centralized dashboard for easy retrieval.
  • πŸ’³ Credit System & Pricing: Built-in tiered pricing system (Starter, Popular, Pro) to manage AI generation credits.
  • 🎨 Premium UI/UX: A highly responsive, modern SaaS aesthetic built with Tailwind CSS v4, featuring fluid micro-animations, glassmorphism, and a custom brand palette.

πŸ› οΈ Tech Stack

Frontend:

  • Framework: React.js (Vite)
  • Styling: Tailwind CSS v4 (Custom Design Tokens)
  • State Management: Redux Toolkit
  • Routing: React Router DOM
  • Authentication: Firebase (Google OAuth)
  • Data Visualization: Recharts, Mermaid.js
  • Animations: Framer Motion (Motion/React)
  • Markdown Rendering: React-Markdown

Backend:

  • Runtime: Node.js
  • Framework: Express.js
  • Database: MongoDB (Mongoose)
  • PDF Generation: PDFKit
  • Security: CORS, Cookie-Parser

πŸ“‚ Project Structure

This is a monorepo containing both the client and server.

Notely/
β”œβ”€β”€ client/                 # React Frontend
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ assets/         # Images and static assets
β”‚   β”‚   β”œβ”€β”€ components/     # Reusable UI components (Sidebar, Navbar, etc.)
β”‚   β”‚   β”œβ”€β”€ pages/          # Route pages (Home, Auth, Notes, History, Pricing)
β”‚   β”‚   β”œβ”€β”€ redux/          # Redux slices and store
β”‚   β”‚   β”œβ”€β”€ services/       # API call functions (Axios)
β”‚   β”‚   └── utils/          # Firebase config
β”‚   β”œβ”€β”€ index.html
β”‚   β”œβ”€β”€ package.json
β”‚   └── vite.config.js
β”‚
β”œβ”€β”€ server/                 # Node.js Backend
β”‚   β”œβ”€β”€ controllers/        # Route logic (auth, generate, notes, pdf)
β”‚   β”œβ”€β”€ middleware/         # Custom middleware (isAuth)
β”‚   β”œβ”€β”€ models/             # Mongoose schemas (User, Notes)
β”‚   β”œβ”€β”€ routes/             # Express routes
β”‚   β”œβ”€β”€ services/           # Gemini AI integration services
β”‚   β”œβ”€β”€ utils/              # DB connection & Prompt building
β”‚   β”œβ”€β”€ index.js            # Server entry point
β”‚   └── package.json

πŸš€ Getting Started

Prerequisites

Make sure you have Node.js and npm installed on your machine. You will also need a Firebase project and a MongoDB cluster.

1. Clone the repository

git clone https://github.com/yourusername/notely.git
cd notely

2. Setup the Backend

cd server
npm install

Create a .env file in the server directory:

PORT=8000
MONGO_URI=your_mongodb_connection_string
JWT_SECRET=your_super_secret_jwt_key
GEMINI_API_KEY=your_gemini_api_key
CLIENT_URL=http://localhost:5173

Start the backend server:

npm run dev

3. Setup the Frontend

Open a new terminal window/tab:

cd client
npm install

Create a .env file in the client directory:

VITE_FIREBASE_APIKEY=your_firebase_api_key
VITE_SERVER_URL=http://localhost:8000

Start the frontend development server:

npm run dev

The app will be running at http://localhost:5173.

🌐 Deployment (Render)

This project is optimized for deployment on Render.

  1. Backend (Web Service): Deploy the server folder. Add the environment variables above. Leave CLIENT_URL blank temporarily.
  2. Frontend (Static Site): Deploy the client folder. Build command: npm install && npm run build. Add VITE_SERVER_URL pointing to your deployed backend. Add a rewrite rule for /* to /index.html to support React Router.
  3. Connect them: Once the frontend is live, copy its URL and paste it into the backend's CLIENT_URL environment variable.

🀝 Contributing

Contributions, issues, and feature requests are welcome! Feel free to check the issues page.

πŸ“ License

This project is MIT licensed.