Skip to content

Latest commit

Β 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“ ProDocify

A modern, collaborative online markdown documentation platform for teams and individuals.

Status Node.js TypeScript PostgreSQL License


🎯 Project Vision

ProDocify is an all-in-one markdown documentation platform designed for:

  • Teams - Collaborate on technical documentation in real-time
  • Developers - Maintain project wikis, API docs, and knowledge bases
  • Organizations - Share best practices and institutional knowledge
  • Individuals - Take notes and organize personal documentation

Key Features

βœ… Create & Edit - Rich markdown editor with live preview
βœ… Organize - Hierarchical folder structure
βœ… Collaborate - Real-time editing with multiple users
βœ… Share - Granular permissions and share links
βœ… Version Control - Full history tracking and restore capability
βœ… Activity Log - Audit trail for all changes
βœ… Teams - Workspace management and team collaboration
βœ… Integrations - Sync with Google Drive, Dropbox (planned)


πŸ—οΈ Project Status

Phase Status Details
Planning βœ… Complete Architecture, tech stack, roadmap finalized
Backend Scaffold βœ… Complete NestJS project, Prisma ORM, initial modules
Database Schema βœ… Complete User, Document, Folder models designed
API Endpoints βœ… Complete Document & Folder CRUD endpoints ready
Authentication πŸ”„ In Progress JWT scaffolding complete, implementation pending
Frontend Scaffold ⏳ Planned Next.js project setup
Frontend UI ⏳ Planned Pages and components
Real-time Sync ⏳ Planned WebSocket/Socket.IO integration

πŸ’» Tech Stack

Frontend

  • Framework: Next.js 14
  • UI Library: React 19
  • Styling: Tailwind CSS
  • State Management: React Query + Zustand
  • Editor: TipTap (Monaco Editor alternative)
  • Build Tool: Vite (if SPA) / Next.js built-in (SSR)

Backend

  • Runtime: Node.js 18+
  • Framework: NestJS 10
  • Language: TypeScript 5.6+
  • Authentication: JWT + Passport
  • Validation: class-validator

Database

  • Primary: PostgreSQL 13+
  • ORM: Prisma 5
  • Cache: Redis (future)
  • Search: Elasticsearch (future)

DevOps

  • Containerization: Docker
  • Cloud Hosting: AWS / Azure / GCP
  • CI/CD: GitHub Actions
  • Version Control: Git

πŸ“‹ Project Structure

ProDocify/
β”œβ”€β”€ .github/
β”‚   β”œβ”€β”€ instructions/          # Development guidelines
β”‚   β”œβ”€β”€ prompts/               # AI-assisted workflow prompts
β”‚   └── history/               # Session progress tracking
β”œβ”€β”€ backend/                   # NestJS API server
β”‚   β”œβ”€β”€ prisma/                # Database schema & migrations
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ auth/              # Authentication module
β”‚   β”‚   β”œβ”€β”€ documents/         # Document CRUD operations
β”‚   β”‚   β”œβ”€β”€ folders/           # Folder management
β”‚   β”‚   β”œβ”€β”€ prisma/            # Database service
β”‚   β”‚   └── common/            # Shared utilities
β”‚   β”œβ”€β”€ package.json
β”‚   β”œβ”€β”€ tsconfig.json
β”‚   β”œβ”€β”€ .env.example
β”‚   └── README.md              # Backend documentation
β”œβ”€β”€ frontend/                  # Next.js web application (pending)
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ components/        # React components
β”‚   β”‚   β”œβ”€β”€ pages/             # Next.js pages
β”‚   β”‚   β”œβ”€β”€ hooks/             # Custom React hooks
β”‚   β”‚   └── styles/            # Global styles
β”‚   └── package.json
β”œβ”€β”€ infra/                     # Infrastructure as Code (pending)
β”‚   β”œβ”€β”€ docker-compose.yml
β”‚   └── terraform/
β”œβ”€β”€ docs/                      # Documentation
β”‚   └── API.md                 # API reference
β”œβ”€β”€ project-planning.md        # Comprehensive planning document
└── README.md                  # This file

πŸš€ Quick Start

Prerequisites

Backend Setup

# 1. Navigate to backend directory
cd backend

# 2. Install dependencies
npm install

# 3. Create environment file
cp .env.example .env

# 4. Configure DATABASE_URL in .env
# Edit .env and set your PostgreSQL connection string

# 5. Generate Prisma Client
npm run prisma:generate

# 6. Run database migrations
npm run prisma:migrate:dev --name init

# 7. Start development server
npm run dev

Backend will be available at: http://localhost:4000/api

Frontend Setup (Coming Soon)

# 1. Navigate to frontend directory
cd frontend

# 2. Install dependencies
npm install

# 3. Start development server
npm run dev

Frontend will be available at: http://localhost:3000


πŸ“š API Documentation

Health Check

GET /api

Documents

GET /api/documents              # List all documents
GET /api/documents/:id          # Get single document
POST /api/documents             # Create document
PATCH /api/documents/:id        # Update document
DELETE /api/documents/:id       # Delete document

Folders

GET /api/folders                # List all folders
GET /api/folders/:id            # Get single folder
POST /api/folders               # Create folder
PATCH /api/folders/:id          # Update folder
DELETE /api/folders/:id         # Delete folder

Authentication (Planned)

POST /api/auth/register         # User registration
POST /api/auth/login            # User login
POST /api/auth/refresh          # Refresh token
POST /api/auth/logout           # User logout

Full API documentation: Backend README


πŸ—„οΈ Database Schema

Models

User

  • Unique user accounts with authentication
  • Profile information (email, metadata)
  • Owns documents and folders

Folder

  • Hierarchical organization of documents
  • Belongs to a user (owner)
  • Can contain multiple documents

Document

  • Markdown content files
  • Belongs to a user (owner) and optionally a folder
  • Timestamps for creation and updates
  • Future: versioning, sharing, permissions

πŸ“– Development Workflow

Making Changes to Backend

  1. Update Prisma Schema (if adding/modifying models)

    # Edit: backend/prisma/schema.prisma
  2. Create Migration

    npm run prisma:migrate:dev --name <migration-name>
  3. Implement Feature

    • Create service in src/feature/feature.service.ts
    • Create controller in src/feature/feature.controller.ts
    • Create module in src/feature/feature.module.ts
  4. Test Endpoints

    • Use Postman, curl, or REST Client extension
  5. Commit & Push

    git add .
    git commit -m "feat: add feature description"
    git push

Environment Configuration

Development (.env)

PORT=4000
JWT_SECRET=dev-secret-key
JWT_EXPIRES_IN=3600s
DATABASE_URL=postgresql://user:password@localhost:5432/prodocify

Production (.env.production)

  • Use strong secrets (min 32 characters)
  • Use managed database (AWS RDS, Azure Database, etc.)
  • Enable HTTPS/TLS
  • Configure CORS for frontend domain

πŸ” Security & Authentication

Current Implementation

  • JWT token-based authentication
  • Passport.js integration
  • Input validation with class-validator
  • CORS protection

Planned Enhancements

  • Multi-factor authentication (MFA)
  • OAuth2 social login (Google, GitHub)
  • SSO support for enterprises
  • API key authentication
  • Rate limiting and DDoS protection

πŸ“ˆ Roadmap

Phase 1 (Weeks 1-2) - MVP

  • βœ… Backend API scaffold
  • βœ… Database schema
  • ⏳ User authentication
  • ⏳ Frontend dashboard
  • ⏳ Document editor

Phase 2 (Weeks 3-4) - Core Features

  • Real-time collaboration (WebSocket)
  • Document versioning
  • Sharing and permissions
  • Activity audit log

Phase 3 (Weeks 5-8) - Enhancement

  • Advanced search
  • Document templates
  • Rich media embedding
  • Export to PDF/HTML

Phase 4 (Weeks 9+) - Scale

  • Team management
  • Enterprise SSO
  • Third-party integrations
  • Mobile app or PWA

πŸ§ͺ Testing

Backend Tests (Coming Soon)

# Unit tests
npm run test

# Integration tests
npm run test:integration

# E2E tests
npm run test:e2e

# Coverage report
npm run test:cov

Frontend Tests (Coming Soon)

# Component tests
npm run test

# E2E tests
npm run test:e2e

πŸ“ Available Commands

Backend Commands

npm run dev                     # Start dev server with hot reload
npm run build                   # Compile TypeScript
npm start                       # Run compiled application
npm run lint                    # Run ESLint
npm run prisma:generate         # Generate Prisma Client
npm run prisma:migrate:dev      # Create and apply migration
npx prisma studio              # Open database browser

Git Commands

git clone <repo-url>           # Clone repository
git checkout -b feature/name   # Create feature branch
git commit -m "message"        # Commit changes
git push origin feature/name   # Push to remote

πŸ› Troubleshooting

Backend Won't Start

1. Check Node.js version: node --version (should be 18+)
2. Check dependencies: npm install
3. Check .env file exists with DATABASE_URL
4. Check PostgreSQL is running

Database Connection Failed

1. Verify PostgreSQL is running: pg_isready -h localhost
2. Check DATABASE_URL in .env is correct
3. Verify database exists: psql -l
4. Run migrations: npm run prisma:migrate:dev

Port Already in Use

# Change port in .env or kill process on port 4000:
lsof -ti:4000 | xargs kill -9    # macOS/Linux
netstat -ano | findstr :4000     # Windows

For more help, see: Backend README | Project Planning


πŸ“š Documentation

Document Purpose
project-planning.md Architecture, design patterns, security, roadmap
backend/README.md Backend setup, API endpoints, database schema
.github/history/ Session progress and achievements

🀝 Contributing

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/my-feature
  3. Commit changes: git commit -am 'Add new feature'
  4. Push to branch: git push origin feature/my-feature
  5. Submit a pull request

Code Standards

  • Use TypeScript for all code
  • Follow ESLint rules (run npm run lint)
  • Write self-documenting code with comments
  • Commit messages in Conventional Commits format
  • Test code before pushing

πŸ“„ License

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


πŸ’¬ Support

Getting Help

Contact


πŸŽ‰ Acknowledgments

Built with:


πŸ“Š Project Statistics

Metric Value
Backend Status 🟒 Scaffolded
Frontend Status 🟑 Planned
Database Models 3 (User, Folder, Document)
API Endpoints 11 (ready)
Documentation πŸ“š Comprehensive
Last Updated May 13, 2026

ProDocify - Making documentation collaborative, accessible, and beautiful πŸš€

ProDocify Banner

About

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages