Skip to content

R3ACTR/NoteNest-Collaborative-Knowledge-Base

Repository files navigation

NoteNest πŸ“

Collaborative Knowledge Base for Teams

NoteNest is an open-source, team-based knowledge base that allows users to create, organize, and collaborate on notes and documentation in real time. It mirrors industry-grade documentation and collaboration tools used by modern teams.

MIT License Open Source Quest PRs Welcome


✨ Features

Feature Description
πŸ“ Rich Note Editor Structured documentation with Markdown support
πŸ‘₯ Team Workspaces Collaborative spaces for your team
πŸ” Role-Based Access Fine-grained permissions (Admin, Editor, Viewer)
πŸ” Search & Indexing Find notes quickly with powerful search
πŸ“ Organization Folders and tags to keep notes organized
πŸš€ Scalable Backend Built for performance and growth

Coming Soon

  • πŸ”Ž Full-text search
  • πŸ€– AI-assisted summaries

πŸ› οΈ Tech Stack

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                      Frontend                           β”‚
β”‚   Next.js  β€’  Tailwind CSS  β€’  Modern React Components  β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                      Backend                            β”‚
β”‚   Node.js  β€’  REST / GraphQL APIs  β€’  JWT Auth          β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                      Database                           β”‚
β”‚                      MongoDB                            β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸš€ Quick Start

Prerequisites

Before you begin, ensure you have the following installed:

Installation

  1. Clone the repository

    git clone https://github.com/R3ACTR/NoteNest-Collaborative-Knowledge-Base.git
    cd NoteNest-Collaborative-Knowledge-Base
  2. Install dependencies (root + backend + frontend)

    npm run install:all

    Or install manually: npm install at the repo root, then npm install in both backend/ and frontend/.

  3. Run backend and frontend with one command

    From the repository root:

    npm run dev

    This starts both the backend and the frontend in parallel. Backend runs at http://localhost:5000, frontend at http://localhost:3000.

    To run them separately: npm run dev:backend or npm run dev:frontend from the root, or run npm run dev inside backend/ or frontend/.

  4. Backend environment (optional)
    If the backend needs a .env file (e.g. MongoDB URI), create backend/.env from backend/.env.example and edit as needed.

Environment Variables

Create a .env file in the backend/ directory:

# MongoDB Connection
MONGODB_URI=mongodb://localhost:27017/notenest

# JWT Secret (use a strong random string)
JWT_SECRET=your-secret-key-here

# Server Port
PORT=5000

πŸ“ Project Structure

notenest/
β”œβ”€β”€ frontend/           # Next.js frontend application
β”‚   β”œβ”€β”€ components/     # Reusable React components
β”‚   β”œβ”€β”€ pages/          # Next.js pages
β”‚   └── styles/         # Tailwind CSS styles
β”‚
β”œβ”€β”€ backend/            # Node.js backend APIs
β”‚   β”œβ”€β”€ controllers/    # Request handlers
β”‚   β”œβ”€β”€ models/         # MongoDB models
β”‚   β”œβ”€β”€ routes/         # API routes
β”‚   └── middleware/     # Auth & validation middleware
β”‚
β”œβ”€β”€ docs/               # Project documentation
β”œβ”€β”€ .github/            # GitHub workflows & templates
β”œβ”€β”€ CONTRIBUTING.md     # Contribution guidelines
β”œβ”€β”€ ROADMAP.md          # Feature roadmap
└── README.md           # You are here!

🧩 How to Contribute

We welcome contributions of all sizes! Here's how to get started:

1. Find an Issue

Browse our Issues and look for:

Label Description
good first issue Perfect for newcomers
frontend UI/React work
backend API/Node.js work
documentation Docs and guides
bug Something needs fixing

2. Fork & Clone

# Fork via GitHub UI, then:
git clone https://github.com/YOUR-USERNAME/NoteNest-Collaborative-Knowledge-Base.git
cd NoteNest-Collaborative-Knowledge-Base
git checkout -b feature/your-feature-name

3. Make Your Changes

  • Write clean, readable code
  • Add comments where helpful
  • Follow existing code style
  • Test your changes locally

4. Submit a Pull Request

git add .
git commit -m "feat: add your feature description"
git push origin feature/your-feature-name

Then open a PR on GitHub with a clear description of your changes.


πŸ“š Documentation

Document Description
Setup Guide Detailed local setup instructions
Architecture System architecture overview
API Reference API endpoints documentation
Roles & Access RBAC documentation

πŸ“ What Makes a Good Note?

A well-written note is clear, structured, and useful to others. Follow these principles when contributing notes to NoteNest:

1. Clear Purpose

Every note should answer: "Why does this exist?"

  • Start with a descriptive title that tells readers what the note is about
  • Include a brief summary at the top explaining the note's purpose
  • Focus on one topic per note instead of mixing multiple unrelated ideas

2. Structured Content

Organize information logically so readers can scan and find what they need:

  • Use headings and subheadings to break down complex topics
  • Group related information together
  • Present steps or lists in a clear, numbered or bulleted format
  • Keep paragraphs short (2-4 sentences max)

3. Actionable Information

Good notes help people do something or understand something:

  • Provide specific examples instead of vague descriptions
  • Include code snippets, commands, or screenshots when relevant
  • Add links to related documentation or resources
  • Specify prerequisites or requirements upfront

4. Consistent Formatting

Follow Markdown conventions to maintain readability:

  • Use code blocks for commands, file names, and technical terms
  • Apply bold for emphasis on key terms
  • Use > blockquotes for important warnings or notes
  • Format links meaningfully: [Link Text](url) instead of raw URLs

5. Good vs. Weak Examples

❌ Weak Note:

Setup stuff
Just install the things and run it. Ask someone if it doesn't work.

βœ… Good Note:

## Local Development Setup

This guide helps you set up NoteNest on your local machine.

### Prerequisites
- Node.js v18+
- MongoDB running locally

### Steps
1. Clone the repository
2. Run `npm install` in both `/frontend` and `/backend`
3. Configure `.env` file (see Environment Variables section)
4. Start backend: `npm run dev` from `/backend`
5. Start frontend: `npm run dev` from `/frontend`

### Troubleshooting
- If MongoDB connection fails, verify it's running: `mongod --version`

The difference? The good note is specific, structured, and actionable.


πŸ”’ Security

Found a security vulnerability? Please read our Security Policy for responsible disclosure guidelines.

⚠️ Do NOT report security issues via public GitHub issues.


πŸ“ Roadmap

See our Roadmap for planned features:

  • Core note editor
  • Team workspaces
  • Full-text search
  • AI-assisted features
  • Mobile app

πŸ“Š Evaluation (OSQ)

Contributions are evaluated based on:

  • βœ… Code quality and clarity
  • βœ… Documentation
  • βœ… Consistency with project style
  • βœ… Collaboration and communication

Quality and learning matter more than quantity!


πŸ“„ License

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


πŸ™ Acknowledgements


Happy contributing! πŸš€

Report Bug Β· Request Feature Β· Join Discussion

About

Team-based notes & documentation system

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 12