Skip to content

NasDock/NoteDock

Repository files navigation

NoteDock

All-in-One Personal Data Recording Software

NoteDock is a comprehensive personal data management application that automatically organizes your daily records through AI analysis, generating smart schedules, memos, and memory summaries.

🏗️ Architecture

This is a monorepo project using pnpm workspaces for cross-platform code sharing.

notedock/
├── apps/
│   ├── mobile/      # React Native + Expo (iOS/Android)
│   ├── desktop/    # Electron + React (Windows/Mac/Linux)
│   └── server/     # Node.js + Express + SQLite (NAS)
├── packages/
│   ├── ui/         # Shared UI components & theme
│   ├── components/ # Business components (cards, etc.)
│   ├── hooks/      # React hooks & Zustand stores
│   ├── utils/      # Utility functions
│   └── types/      # TypeScript type definitions
└── pnpm-workspace.yaml

🛠️ Tech Stack

Layer Technology
Mobile React Native + Expo
Desktop Electron + React + Vite
Server Node.js + Express + SQLite
State Zustand
Navigation React Navigation (mobile) / React Router (desktop)
Sync MQTT
AI Hybrid (Cloud API → Ollama local)
Voice Whisper (端侧优先)

🎨 Design System

  • Style: Neumorphism + Card-based
  • Background: #F8F8F8
  • Primary: #1A1A1A
  • Accent: #FFC107

Pages

  1. 登录页 (Login) - Email + Password authentication
  2. NAS绑定页 (NAS Binding) - Connect to personal NAS server
  3. 记录页 (Record) - Create and browse records (text/image/voice/location/link)
  4. 智能分析页 (Smart) - AI-generated schedules, memos, memories
  5. 我的页 (Profile) - User settings, NAS status, PRO subscription

📦 Shared Packages

@notedock/types

TypeScript interfaces for User, Record, Schedule, Memo, Memory, NAS, Auth types.

@notedock/ui

Theme configuration (colors, spacing, shadows), neumorphic design utilities.

@notedock/components

  • MemoCard - Memo display card
  • RecordCard - Record display card
  • ScheduleCard - Schedule display card
  • PROCard - PRO membership card
  • NASStatusCard - NAS connection status

@notedock/hooks

  • useAuth() - Authentication state
  • useNAS() - NAS connection state
  • useRecords() - Records management
  • useSync() - Sync state
  • useHydration() - Store hydration
  • useAsync() - Async operation hook
  • useDebounce() - Debounce utility
  • useFormValidation() - Form validation

@notedock/utils

  • storage - AsyncStorage wrapper
  • validation - Email, password validators
  • date - Date formatting utilities

🚀 Getting Started

Prerequisites

  • Node.js >= 18.0.0
  • pnpm >= 8.0.0

Install Dependencies

pnpm install

Development

# Mobile (Expo)
pnpm dev:mobile

# Desktop (Electron)
pnpm dev:desktop

# Server (NAS)
pnpm dev:server

Build

pnpm build:mobile
pnpm build:desktop
pnpm build:server

Type Check & Lint

pnpm typecheck
pnpm lint

📁 Project Structure Details

Mobile App (apps/mobile)

mobile/
├── src/
│   ├── App.tsx              # Entry point
│   ├── navigation/
│   │   ├── RootNavigator.tsx  # Auth/Main flow
│   │   ├── AuthNavigator.tsx  # Login/Register
│   │   └── MainNavigator.tsx  # Tab navigator
│   └── screens/
│       ├── LoginScreen.tsx
│       ├── RegisterScreen.tsx
│       ├── NASBindingScreen.tsx
│       ├── RecordScreen.tsx
│       ├── SmartScreen.tsx
│       └── ProfileScreen.tsx
└── app.json

Desktop App (apps/desktop)

desktop/
├── src/
│   ├── main/
│   │   ├── main.ts          # Electron main process
│   │   └── preload.ts       # Preload script
│   └── renderer/
│       ├── App.tsx          # React entry
│       ├── components/
│       │   └── Layout.tsx   # Sidebar layout
│       └── screens/
│           ├── LoginPage.tsx
│           ├── NASBindingPage.tsx
│           ├── RecordPage.tsx
│           ├── SmartPage.tsx
│           └── ProfilePage.tsx
└── vite.config.ts

Server (apps/server)

server/
├── src/
│   ├── index.ts             # Express app entry
│   ├── db/
│   │   └── database.ts      # SQLite setup
│   ├── middleware/
│   │   ├── auth.ts          # JWT auth middleware
│   │   └── errorHandler.ts  # Error handling
│   ├── routes/
│   │   ├── auth.ts          # Auth endpoints
│   │   ├── nas.ts           # NAS config endpoints
│   │   ├── records.ts       # Records CRUD
│   │   └── ai.ts            # AI analysis endpoints
│   └── services/
│       └── mqtt.ts          # MQTT sync service
└── package.json

📄 License

Private - All rights reserved

About

All in one 笔记平台

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages