Skip to content

KaziBadrul/Acadex

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

113 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Acadex

Acadex Logo
Acadex is a unified workspace designed to streamline your productivity with notes, resources, and scheduling tools. Built with modern web technologies, it offers a seamless experience for managing your academic and personal life.

Features

  • Authentication & Security: Secure user authentication powered by Supabase.
  • Rich Text Notes: Create and edit formatted notes using Tiptap, a headless editor framework.
  • Smart Scheduling: Integrated calendar functionality with FullCalendar for managing events and deadlines.
  • OCR Capabilities: Extract text from images using Tesseract.js (via node-tesseract-ocr).
  • Media Management: Efficient image uploads and hosting provided by Cloudinary.
  • Responsive Design: Built with Tailwind CSS 4 for a beautiful, mobile-first interface.

Tech Stack

Getting Started

Follow these steps to set up the project locally.

Prerequisites

Ensure you have the following installed:

Installation

  1. Clone the repository:

    git clone <repository-url>
    cd acadex
  2. Install dependencies:

    npm install
    # or
    yarn install
    # or
    pnpm install
  3. Environment Setup:

    Create a .env.local file in the root directory and add the following environment variables. You will need credentials from Supabase and Cloudinary.

    # Supabase
    NEXT_PUBLIC_SUPABASE_URL=your_supabase_url
    NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key
    SUPABASE_URL=your_supabase_url
    SUPABASE_SERVICE_ROLE_KEY=your_supabase_service_role_key
    
    # Cloudinary
    CLOUDINARY_URL=your_cloudinary_url
    
    # Web Push (if applicable)
    NEXT_PUBLIC_VAPID_PUBLIC_KEY=your_vapid_public_key
    
    # Gemini LLM (Google AI Studio) – replace with your key/endpoint
    GEMINI_API_KEY=your_gemini_api_key_here
    # you can also specify a full endpoint; defaults to
    # https://generativelanguage.googleapis.com/v1beta2/models/gemini-1.0:generate
    GEMINI_API_ENDPOINT=https://api.example.com/v1/models/gemini:generate
    
    

Flashcard generation occurs on a separate page (/notes/[id]/generate). When you click the Generate Flashcards button the client will navigate there; the server component calls Gemini with your key, creates a deck, and then immediately redirects to /decks/<deckId> once the cards are ready. ```

  1. Run the development server:

    npm run dev

    Open http://localhost:3000 with your browser to see the result.

Project Structure

A quick look at the top-level files and directories you'll encounter in this project:

  • app/: Contains the application routes, layouts, and pages (Next.js App Router).
  • components/: Reusable UI components.
  • lib/: Library code, third-party client initializations.
  • utils/: Utility functions and helpers.
  • public/: Static assets like images and fonts.
  • types/: TypeScript type definitions.

Learn More

To learn more about the technologies used in this project:

About

Acadex is a unified workspace designed to streamline your productivity with notes, resources, and scheduling tools. Built with modern web technologies, it offers a seamless experience for managing your academic and personal life.

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors