Una aplicación de productividad todo-en-uno que combina notas, tareas, bases de datos y herramientas de colaboración en un espacio de trabajo unificado.
- Bloques de contenido modulares: Texto, listas, tablas, medios y más
- Sistema de plantillas: Plantillas predefinidas para diferentes casos de uso
- Sincronización multiplataforma
- Markdown support: Formateo rápido con atajos de Markdown
- Sistema de permisos: Control granular de acceso a páginas y espacios de trabajo
- Generar deagra¡mas de Gantt Se generaran daigramas en vase a las tareas.
- OPCIONALES
- Colaboración en tiempo real: Trabaja simultáneamente con otros usuarios
- Sincronizacion con google: las tareas del usuario se añadiran en su calendari y to do de google
- Framework: Spring Boot 3.x
- Base de datos: MongoDB con documentos para almacenamiento flexible
- Autenticación: Spring Security con JWT
- API REST: endpoints para gestión de bloques, páginas y usuarios
- Real-time: WebSockets para colaboración en tiempo real
- Framework: Angular 20+ con TypeScript
- Estilos: Tailwind CSS para diseño utilitario y responsive
- Estado: NgRx para gestión de estado (opcional, según complejidad)
- Enrutamiento: Angular Router
- Iconos: Angular Material Icons o Lucide Angular
- Editor de texto: TipTap integrado con Angular o Editor.js
switch/
├── backend/ # Spring Boot API
│ ├── src/main/java/com/switch/
│ │ ├── controller/ # Controladores REST
│ │ ├── service/ # Lógica de negocio
│ │ ├── repository/ # Acceso a MongoDB
│ │ ├── model/ # Entidades y DTOs
│ │ └── config/ # Configuraciones
│ └── src/main/resources/
│ └── application.yml # Configuración
├── frontend/ # Angular Application
│ ├── src/
│ │ ├── app/
│ │ │ ├── components/ # Componentes reutilizables
│ │ │ ├── pages/ # Componentes de página
│ │ │ ├── services/ # Servicios de API
│ │ │ ├── store/ # Estado con NgRx (si se usa)
│ │ │ ├── models/ # Modelos e interfaces
│ │ │ └── shared/ # Módulos y componentes compartidos
│ │ ├── assets/ # Archivos estáticos
│ │ └── styles/ # Estilos globales
│ ├── angular.json # Configuración de Angular
│ └── tailwind.config.js # Configuración de Tailwind
└── README.md
- Java 21
- Spring Boot
- Spring Data MongoDB
- Spring Security
- JSON Web Tokens (JWT)
- WebSocket (STOMP)
- Maven
- Angular 20+
- TypeScript
- RxJS para programación reactiva
- Tailwind CSS
- Angular Router
- Angular HttpClient para peticiones HTTP
- TipTap o Editor.js para editor de texto
- Angular Material Icons o Lucide Angular para iconos
- NgRx para gestión de estado (opcional)
- MongoDB con documentos para almacenamiento flexible
- Docker
- Docker Compose
POST /api/auth/login- Iniciar sesiónPOST /api/auth/register- Registrar usuarioPOST /api/auth/refresh- Refrescar token
GET /api/pages- Obtener todas las páginasPOST /api/pages- Crear nueva páginaGET /api/pages/{id}- Obtener página específicaPUT /api/pages/{id}- Actualizar páginaDELETE /api/pages/{id}- Eliminar página Solo seran recividas las paginas creadas por el usuario
La aplicación utiliza documentos MongoDB con la siguiente estructura aproximada:
{
"_id": "ObjectId",
"title": "Título de la página",
"blocks": [
{
"type": "paragraph|heading|list|table|etc",
"content": "Contenido del bloque",
"properties": {}
}
],
"ownerId": "ID del usuario",
"collaborators": ["userId1", "userId2"],
"createdAt": "Fecha de creación",
"updatedAt": "Fecha de actualización"
}- Haz clic en "+ Nueva página" en la barra lateral
- Selecciona una plantilla o comienza en blanco
- Escribe
/para ver los bloques disponibles
- Usa
Ctrl+Bpara negrita (Cmd+B en Mac) - Usa
Ctrl+Ipara cursiva (Cmd+I en Mac) - Arrastra bloques para reorganizarlos
Este proyecto está bajo la Licencia MIT. Consulta el archivo LICENSE para más detalles.