Hiro 9496fc8e36 feat: Add Projects and Folders UI (SimpleNote v2)
- New Projects view (projects.js): Lists all projects with cards
- New ProjectView (projectView.js): Project dashboard with folder tree
- Updated API client: Projects and Folders CRUD methods
- New modals: NewProjectModal, NewFolderModal, MoveToFolderModal
- Edit/Delete project functionality
- Updated navigation: ProjectList -> ProjectView -> FolderView
- Consistent dark theme styling

Changes:
- public/js/views/projects.js (NEW)
- public/js/views/projectView.js (NEW)
- public/js/api.js (added Projects/Folders API methods)
- public/js/app.js (added navigation routes)
- public/js/components/sidebar.js (added Projects link)
- public/css/style.css (added project/folder styles)
2026-03-28 13:03:23 +00:00
2026-03-28 11:19:43 +00:00

SimpleNote Web

REST API para gestión de documentos basada en archivos Markdown con soporte para librerías anidadas y tags.

Características

  • API REST completa (Express.js)
  • Almacenamiento en archivos Markdown + JSON
  • Soporte para librerías anidadas
  • Indexación de tags
  • Autenticación por tokens Bearer

Requisitos

  • Node.js 18+

Instalación

npm install

Configuración

Copia .env.example a .env y ajusta las variables:

PORT=3000
HOST=0.0.0.0
DATA_ROOT=./data
ADMIN_TOKEN=snk_your_initial_token
CORS_ORIGIN=*
API_PREFIX=/api/v1

Inicialización

npm run init

Esto crea la estructura inicial de datos y una librería "Default Library".

Uso

Desarrollo

npm run dev

Producción

npm start

API Endpoints

Auth

  • POST /api/v1/auth/token - Generar token (admin)
  • GET /api/v1/auth/verify - Verificar token

Documents

  • GET /api/v1/documents - Listar documentos (filtros: tag, library, type, status)
  • GET /api/v1/documents/:id - Obtener documento
  • POST /api/v1/documents - Crear documento
  • PUT /api/v1/documents/:id - Actualizar documento
  • DELETE /api/v1/documents/:id - Eliminar documento
  • GET /api/v1/documents/:id/export - Exportar como Markdown
  • POST /api/v1/documents/:id/tags - Agregar tags

Libraries

  • GET /api/v1/libraries - Listar librerías raíz
  • GET /api/v1/libraries/:id - Ver contenido de librería
  • POST /api/v1/libraries - Crear librería
  • GET /api/v1/libraries/:id/tree - Árbol completo
  • DELETE /api/v1/libraries/:id - Eliminar librería

Tags

  • GET /api/v1/tags - Listar todos los tags
  • GET /api/v1/tags/:tag - Documentos con tag específico

Estructura de Datos

data/
├── .auth-tokens.json     # Tokens de API
├── .tag-index.json       # Índice global de tags
└── libraries/
    └── {id}/
        ├── .library.json
        ├── documents/
        │   └── {doc-id}/
        │       ├── index.md
        │       └── .meta.json
        └── sub-libraries/

Licencia

MIT

Description
SimpleNote Web - Document management system with nested libraries and markdown support
Readme 357 KiB
Languages
JavaScript 80.8%
CSS 18.7%
HTML 0.4%
Dockerfile 0.1%