Skip to content

braydenidzenga/ZettaNote

ZettaNote Banner

Typing SVG

License Issues Pull Requests Live Demo

An open-source note-taking application inspired by Notion, focusing on Markdown-based notes, real-time collaboration, and flexible organization while remaining lightweight and developer-friendly.

FeaturesTech StackGetting StartedDockerRoadmapContributing


🚧 Project Status

Currently in Active Development • Contributions Welcome!

Hacktoberfest


✨ Features

🚀 Currently Available

  • Modern Markdown Editor with syntax highlighting and live preview
  • Auto-save Functionality - Never lose your work
  • Responsive Dashboard - Mobile-friendly design
  • Page Management - Create, rename, delete pages
  • Public Sharing - Share pages with secure links
  • Dark/Light Theme - Switch between themes seamlessly
  • User Authentication - Secure login and registration with OAuth
  • Admin Portal - User management interface
  • Task Management - Complete task system with subtasks and reminders
  • Email Notifications - Automated reminders and notifications

🔮 Coming Soon

  • 🔄 Real-time Collaboration for teams
  • 📁 Flexible Organization with tags and folders
  • 🔍 Advanced Search & Filter across all notes
  • 🔌 API Integration - Third-party app support

🛠️ Tech Stack

Backend

Node.js Express MongoDB

Frontend

React Vite Tailwind CSS DaisyUI

DevOps

Docker Postman


⚡ Quick Start

# Clone the repository
git clone https://github.com/braydenidzenga/zettanote.git
cd ZettaNote

# Start with Docker Compose (Recommended)
docker-compose up -d

# Or start manually:
# Backend
cd backend && npm install && npm run dev

# Frontend (in new terminal)
cd frontend && npm install && npm run dev

Visit http://localhost:5173 to access the application!


🚀 Getting Started

Prerequisites

Ensure you have the following installed:

  • Node.js (v18+ recommended)
  • MongoDB (local or cloud instance)
  • npm or yarn

🔧 Backend Setup

  1. Clone the repository

    git clone https://github.com/braydenidzenga/zettanote.git
    cd ZettaNote/backend
  2. Install dependencies

    npm install
  3. Configure environment variables

    # Copy .env.example to .env and fill in your variables
    cp .env.example .env
  4. Start the backend server

    npm run dev

📮 Test APIs with Postman

  1. Open Postman
  2. Click Import
  3. Select backend/docs/postman_collection.json
  4. Start testing endpoints (ensure backend is running at http://localhost:4000)

🎨 Frontend Setup

  1. Navigate to frontend directory

    cd ZettaNote/frontend
  2. Install dependencies

    npm install
  3. Configure environment variables

    # Create .env file and add your backend URL
    echo "VITE_API_URL=http://localhost:4000" > .env
  4. Start the development server

    npm run dev

The frontend is built with:

  • Vite - Fast build tool and development server
  • 🎨 Tailwind CSS - Utility-first CSS framework
  • 🧩 DaisyUI - Component library for Tailwind CSS
  • ⚛️ React 18 - Modern React with hooks and context

🔐 Admin Portal Setup (Optional)

  1. Install dependencies

    cd admin-portal
    npm install
  2. Configure environment

    # Copy .env.example to .env and edit variables
    cp .env.example .env
  3. Run the admin portal

    npm start
  4. Create default admin user

    cd ZettaNote/backend
    npm run create-admin

🐳 Running with Docker

Prerequisites

  • Docker and Docker Compose installed

Quick Start with Docker Compose

  1. Clone the repository

    git clone https://github.com/braydenidzenga/zettanote.git
    cd ZettaNote
  2. Configure environment variables

    # Copy the example environment file
    cp .env.example .env
    
       # Edit .env with your configuration (required: JWT_SECRET, email settings)
    nano .env
  3. Start all services with Docker Compose

    docker-compose up -d

    This will start:

    • MongoDB (database)
    • Redis (caching)
    • Backend (API server)
    • Frontend (web application)
    • Nginx (reverse proxy)
  4. Access the application

    • Frontend: http://localhost or https://localhost (if SSL configured)
    • API: http://localhost/api or https://localhost/api

Manual Docker Setup (Alternative)

If you prefer to run services individually or have an external MongoDB:

  1. Build Docker images

    docker build -t zettanote-backend ./backend
    docker build -t zettanote-frontend ./frontend
  2. Run containers

    docker run -d -p 4000:4000 --name zettanote-backend zettanote-backend
    docker run -d -p 3000:3000 --name zettanote-frontend zettanote-frontend

🤝 Contributing

We welcome contributions from the community!

Contributors

Ways to Contribute:

  • 🐛 Report bugs
  • 💡 Suggest new features
  • 📝 Improve documentation
  • 🔧 Submit pull requests

Contributors

RabindranathChanda
RabindranathChanda
MannuVilasara
MannuVilasara
braydenidzenga
braydenidzenga
ikeshav26
ikeshav26
codingniket
codingniket
rahilraipuria
rahilraipuria
bhavanisaw
bhavanisaw
kleberson154
kleberson154
DikshantJangra
DikshantJangra
SudharsanSaravanan
SudharsanSaravanan
213sanjana
213sanjana
SrinjoyeeDey
SrinjoyeeDey
madhavv-xd
madhavv-xd
anup2702
anup2702
arunesh12389
arunesh12389
damarudhvarma
damarudhvarma
kaushalyap
kaushalyap
shourya2006
shourya2006
deepshikhatutorials
deepshikhatutorials
anirbandotdev
anirbandotdev
naextro
naextro
Namit-Rana6
Namit-Rana6
Nitin2332
Nitin2332
AmjustGettingStarted
AmjustGettingStarted
Omar8345
Omar8345
KhanjarSingh
KhanjarSingh
Er-luffy-D
Er-luffy-D
prkr-28
prkr-28
mukeshdhadhariya
mukeshdhadhariya
sudoyasir
sudoyasir
amilliiee
amilliiee
uniquepersun
uniquepersun
NotHolmes
NotHolmes
tvnmvy66
tvnmvy66
siddxharth1
siddxharth1
Riya922003
Riya922003
ayaz9616
ayaz9616
UrekMaz
UrekMaz
matheusdcunha
matheusdcunha
manumay1962
manumay1962
mahiptiwari1000
mahiptiwari1000
mahenoorsalat
mahenoorsalat
komalsathvik
komalsathvik
ByteKatana
ByteKatana
MIGHTYgAur
MIGHTYgAur
theboringguy07
theboringguy07
AsadAhmedSaiyed
AsadAhmedSaiyed
M1CTIAN
M1CTIAN
anandakbari
anandakbari
21aansh06
21aansh06

📄 License

This project is licensed under the MIT License.
See the LICENSE file for details.

License


💚 Support

If you find ZettaNote helpful, please consider giving it a ⭐️ on GitHub!

Star on GitHub

Built with 💚 by the open-source community

Footer