Skip to content

DeepakAC3/NoteForge

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NoteForge

A full-stack note-taking application built with the MERN stack (MongoDB, Express, React, Node.js). ThinkBoard allows users to create, view, and manage notes efficiently with a modern UI.

Home Page

alt text

Features

  • Create, read, update, and delete notes
  • Rate limiting for API requests
  • Responsive design with Tailwind CSS
  • RESTful API backend
  • Modern React frontend with Vite

Project Structure

NoteForge/
├── backend/      # Express.js API server
│   ├── src/
│   ├── controllers/
│   ├── models/
│   ├── routes/
│   └── middleware/
├── frontend/     # React client app
│   ├── src/
│   ├── components/
│   ├── pages/
│   └── lib/
├── README.md
└── package.json

Getting Started

Prerequisites

Minimum tools and services required to run the project locally:

  • Node.js (LTS) — Node 18+ recommended
  • npm — used to install dependencies and run scripts
  • MongoDB — either a local mongod instance or a hosted MongoDB Atlas cluster
  • A Clerk account (for authentication) — you'll need a publishable key and a secret key (see "Environment variables" below)

Installation

  1. Clone the repository:

    git clone https://github.com/DeepakAC3/mern-thinkboard.git
    cd mern-thinkboard
  2. Install backend dependencies:

    cd backend
    npm install
  3. Install frontend dependencies:

    cd ../frontend
    npm install

Running the App (local)

  1. Start the backend server:

    cd backend
    npm start
  2. Start the frontend development server:

    cd frontend
    npm run dev
  3. Open your browser at http://localhost:5173

Authentication (Clerk)

This project uses Clerk for authentication. Clerk is integrated on both frontend and backend:

  • Frontend: @clerk/clerk-react with ClerkProvider (see frontend/src/main.jsx).
  • Backend: @clerk/express middleware is applied to protect API routes (see backend/src/middleware/clerkAuth.js).

Environment variables used for Clerk:

  • Backend (backend/.env):

    • CLERK_SECRET_KEY — server secret key (sk_...)
    • CLERK_PUBLISHABLE_KEY — optional server-side copy of the publishable key (pk_...)
    • CLIENT_URL — the frontend origin (used for CORS), e.g. http://localhost:5173 or your deployed frontend URL

NoteForge

A simple MERN notes app with Clerk authentication.

Quick start

  1. Install backend and frontend deps:
cd backend && npm install
cd ../frontend && npm install
  1. Run locally:
# backend
cd backend && npm start

# frontend
cd ../frontend && npm run dev

Open http://localhost:5173

Clerk auth (short)

  • Frontend: set VITE_CLERK_PUBLISHABLE_KEY (build-time).
  • Backend: set CLERK_SECRET_KEY and CLIENT_URL (for CORS).
  • You must register your production domain in Clerk to use live production keys — Clerk requires a valid domain (ETLD+1) for cookies.

About

A full‑stack note-taking app built with the MERN stack (MongoDB, Express, React, Node). NotesForge helps you create, organize, and manage notes quickly with a clean, responsive UI and secure user authentication.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors