Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

esprydi/notion-clone

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

24 Commits

Repository files navigation

Mini Notion Clone πŸ“

Aplikasi pencatatan berbasis blok (Mini Notion Clone) yang dirancang untuk produktivitas maksimal. Mendukung fitur Drag & Drop, Autosave, Real-time Collaboration, dan keamanan tingkat tinggi.


πŸ–ΌοΈ Tampilan Aplikasi

🏠 Halaman Utama (Welcome)

Welcome Page

✍️ Editor & Kolaborasi Real-time

Editor Page

πŸ” Autentikasi (Login & Register)

Login Page Register Page
Login Register

πŸš€ Fitur Utama

  • Block-Based Editor: Tulis teks (TipTap), buat checklist, upload gambar, atau tulis kode.
  • Drag & Drop: Atur urutan blok dengan mudah menggunakan fitur seret dan lepas (dnd).
  • Real-time Collaboration: Edit dokumen bersama rekan dalam waktu nyata menggunakan WebSocket (Socket.io).
  • Smart Locking Mechanism: Mencegah konflik pengeditan dengan indikator "User is editing..." yang akurat.
  • Autosave: Perubahan disimpan secara otomatis ke database dengan sistem debounce yang efisien.
  • Security Hardening: Dilindungi dengan Helmet, Rate Limiting, dan validasi data ketat menggunakan Zod.
  • Modern UI: Antarmuka bersih, responsif, dan premium menggunakan Tailwind CSS dan Lucide Icons.

πŸ› οΈ Tech Stack

Frontend

  • Framework: React Router 7 (Vite)
  • Styling: Tailwind CSS
  • Editor: TipTap Editor
  • Notifications: Sonner (Toast)
  • Icons: Lucide React
  • Drag & Drop: @hello-pangea/dnd
  • Testing: Vitest & React Testing Library

Backend

  • Runtime: Node.js (Express)
  • Database: PostgreSQL
  • ORM: Prisma
  • Real-time: Socket.io
  • Validation: Zod
  • Security: Helmet & Express Rate Limit
  • Testing: Jest & Supertest

πŸ“ Struktur Proyek

notion-clone/
β”œβ”€β”€ backend/ # Express.js Server (Node.js)
β”‚ β”œβ”€β”€ prisma/ # Database Schema (Prisma) & Migrations
β”‚ β”œβ”€β”€ src/
β”‚ β”‚ β”œβ”€β”€ controllers/ # Logika bisnis (Auth, Note, Block)
β”‚ β”‚ β”œβ”€β”€ routes/ # Definisi API Endpoints
β”‚ β”‚ └── index.js # Entry point & Socket.io setup
β”‚ └── api.test.js # Integration tests
β”‚
└── frontend/ # React Application (React Router 7)
 β”œβ”€β”€ app/
 β”‚ β”œβ”€β”€ components/ # Blocks (Text, Image, Code) & Editor UI
 β”‚ β”œβ”€β”€ hooks/ # Custom hooks (e.g., useAutosave)
 β”‚ β”œβ”€β”€ routes/ # Page components & Layouts
 β”‚ └── types/ # TypeScript Interfaces
 └── ... # Unit Tests (*.test.tsx)

βš™οΈ Panduan Instalasi

1. Persiapan Database (Docker)

cd backend
docker-compose up -d

2. Setup Backend

cd backend
npm install
npx prisma migrate dev --name init
npx prisma db seed
npm run dev

3. Setup Frontend

cd frontend
npm install
npm run dev

πŸ§ͺ Pengujian (Testing)

  • Frontend: npm test (Unit Testing)
  • Backend: npm test (Integration Testing)

πŸ“„ Lisensi

Proyek ini dilisensikan di bawah ISC License.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

Contributors

AltStyle γ«γ‚ˆγ£γ¦ε€‰ζ›γ•γ‚ŒγŸγƒšγƒΌγ‚Έ (->γ‚ͺγƒͺγ‚ΈγƒŠγƒ«) /