https://github.com/erik-tortarod/justdocit
Online Multilanguage Code Documentor
https://github.com/erik-tortarod/justdocit
aws biomejs daisyui docker github-actions java makefile mongodb oauth2 reactjs spring-boot tailwindcss terraform typescript
Last synced: about 1 year ago
JSON representation
Online Multilanguage Code Documentor
- Host: GitHub
- URL: https://github.com/erik-tortarod/justdocit
- Owner: erik-tortarod
- License: mit
- Created: 2025-03-25T16:36:06.000Z (over 1 year ago)
- Default Branch: dev
- Last Pushed: 2025-06-11T18:04:38.000Z (about 1 year ago)
- Last Synced: 2025-06-11T19:16:12.956Z (about 1 year ago)
- Topics: aws, biomejs, daisyui, docker, github-actions, java, makefile, mongodb, oauth2, reactjs, spring-boot, tailwindcss, terraform, typescript
- Language: HTML
- Homepage: https://deepwiki.com/erik-tortarod/JustDocIt/1-overview
- Size: 1000 KB
- Stars: 5
- Watchers: 2
- Forks: 1
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Just Doc It - Documentación del Proyecto

## Extras
- Para cualquier duda de la estructura, aquí se proporciona una documentación creada por IA a la cual se le puede preguntar cualquier cuestión del proyecto: [Link AI](https://deepwiki.com/erik-tortarod/JustDocIt/1-overview)
- Diseño de Figma: [Link Figma](https://www.figma.com/design/DDN1a1kKOHmwWRiycK7Jdt/Clase-Dise%C3%B1o-Web?node-id=0-1&t=akoh8G6NbL1P3Z6U-1)
## Índice de Contenidos
1. [Finalidad de la web](#1-descripción-de-la-finalidad-de-la-web)
2. [Guía de Instalación y Uso](#2-cómo-instalar-y-ejecutar-el-proyecto)
3. [Tecnologías empleadas](#3-tecnologías-empleadas)
4. [Diagrama de la infraestructura](#4-diagrama-infraestructura)
## 1. Descripción de la Finalidad de la Web
Just Doc It es una plataforma innovadora diseñada para simplificar y automatizar el proceso de documentación de código. Su objetivo principal es eliminar la complejidad tradicional asociada con la documentación de software, ofreciendo una solución integral que:
- **Automatiza la Documentación**: Genera documentación de código de manera automática sin necesidad de configuración manual.
- **Soporta Múltiples Lenguajes**: Permite documentar código de diferentes lenguajes de programación desde una única plataforma.
- **Integración con Github**: Facilita el acceso y documentación de repositorios tanto públicos como privados mediante autenticación OAuth2.
- **Despliegue Automático**: Genera y despliega automáticamente sitios web estáticos con la documentación.
- **Integración con IA**: Todo el código que no esté documentado a mano, se le puede dar a una IA para que lo documente detalladamente en vivo, creando diagramas y explicaciones claras de cada detalle de tu código.
## 2. Cómo instalar y ejecutar el proyecto
### Clonar el repositorio
Primero, clona el repositorio de Just Doc It, trabajaremos en la rama _dev_:
```bash
git clone https://github.com/erik-tortarod/JustDocIt.git
```
### Configurar Credenciales OpenAI
La **API_KEY** de de OpenAI actual es esta, se encuentra en el archivo : `manual_proyecto.pdf`
Copiala y pegala en el **Makefile**, justo donde pone _OPENAI_API_KEY_.
Esta clave solo tiene 5€ por lo que si no funciona probablemente se deba a que se ha quedado sin presupuesto.
### Construye el proyecto con Docker
Para evitar tener que instalarte JDK, npm o cualquier cosa, se han implementado una serie de _Dockerfile_ para así poder fácilmente desplegar y destruir todo, simplemente haz en el directorio raiz el comando `make help` y tendrás todas las instrucciones como:
- Construir y desplegar `make rebuild-all`
- Detener contenedores `make stop-all`
- Ver logs `make logs-CONTENEDOR`
### Dirígete a http://localhost
## 3. Tecnologías empleadas
A continuación, se detallan las tecnologías empleadas en el proyecto, organizadas por categorías:
### **Frontend**
| Tecnología | Descripción |
| ---------- | ---------------------------------------------------------------------------------- |
| React | Librería de JavaScript para construir interfaces de usuario |
| TypeScript | Superconjunto de JavaScript que añade tipado estático |
| Vite | Herramienta de construcción rápida para proyectos web modernos |
| BiomeJS | Formateador y linter de código para JavaScript/TypeScript |
| Framer | Librería para animaciones y prototipos interactivos |
| i18n | Librería para internacionalización (manejo de múltiples idiomas) |
| Lucide | Conjunto de iconos de código abierto personalizables |
| Mermaid | Herramienta basada en Markdown para generar diagramas y gráficos a partir de texto |
| PrismJS | Un resaltador de sintaxis ligero, robusto y extensible |
### **Diseño**
| Tecnología | Descripción |
| --------------------- | ----------------------------------------------------------------------------- |
| Tailwind CSS | Framework CSS de utilidad para construir diseños personalizados rápidamente |
| DaisyUI | Librería de componentes para Tailwind CSS |
| Figma | Herramienta de diseño de interfaz y prototipado colaborativo |
| Google Search Console | Herramienta de Google para monitorear el rendimiento del sitio en la búsqueda |
| Metodología BEM | (Block, Element, Modifier) Metodología para nombrar clases CSS |
### **Servidor**
| Tecnología | Descripción |
| --------------------- | ----------------------------------------------------------------------------------------------------- |
| JWT (JSON Web Tokens) | Estándar abierto para la creación de tokens de acceso |
| OAuth2 | Framework de autorización que permite a las aplicaciones obtener acceso limitado a cuentas de usuario |
| MongoDB | Base de datos NoSQL basada en documentos |
| LDAP Security | Protocolo para acceder y mantener servicios de información de directorio distribuido |
| Lombok | Librería de Java que ayuda a reducir el código repetitivo (boilerplate) |
| iTextPDF | Librería para crear y manipular documentos PDF |
| Java Format | Formatear y Lintear el código de Java |
### **Despliegue**
| Tecnología | Descripción |
| --------------------------- | ----------------------------------------------------------- |
| AWS (Amazon Web Services) | Plataforma de servicios en la nube |
| EFS (Elastic File System) | Servicio de almacenamiento de archivos escalable |
| ACM (Certificate Manager) | Servicio para gestionar certificados SSL/TLS |
| S3 (Simple Storage Service) | Almacenamiento de objetos escalable |
| Vitest | Framework de pruebas unitarias compatible con Vite |
| Playwright | Framework de automatización de pruebas de extremo a extremo |
| GitHub Actions | Plataforma de CI/CD para automatizar flujos de trabajo |
| MongoDB Atlas | Servicio de base de datos MongoDB en la nube |
| Terraform | Herramienta para CI/CD |
### **Otras**
| Tecnología | Descripción |
| ---------- | ---------------------------------------------------------------------- |
| Devin AI | Asistente de IA para desarrollo |
| GitBook | Plataforma para documentar y publicar contenido |
| Scribe | Herramienta para crear guías paso a paso automáticamente |
| OpenAI/Ollama | API de inteligencia artificial para documentación y análisis de código |
## 4. Diagrama infraestructura
```mermaid
graph TB
%% Usuario y herramientas de desarrollo
User[👤 Developer] --> GitHub[📦 GitHub Repository]
User --> DevinAI[🤖 GitHub Devin AI]
User --> DockerHub[🐳 Docker Hub]
%% GitHub y CI/CD
GitHub --> Actions[⚙️ GitHub Actions]
Actions --> Biome[🔧 Biome
Formateo de código]
Actions --> Vitest[🧪 Vitest
Testing]
Actions --> Terraform[🏗️ Terraform
Infrastructure as Code]
%% AWS Infrastructure
Terraform --> AWS{☁️ AWS}
AWS --> S3[📦 S3 Bucket
Terraform State]
AWS --> ACM[🔒 ACM
SSL Certificate]
AWS --> EFS[💾 EFS
Elastic File System]
%% Docker Hub connection to EFS
DockerHub --> EFS
%% Applications in EFS
EFS --> Frontend[⚛️ Frontend React]
EFS --> Backend1[🌱 Backend Spring Boot 1
GitHub OAuth]
EFS --> Backend2[🌱 Backend Spring Boot 2
LDAP]
%% External Services
ACM --> Hostinger[🌐 Hostinger
Domain Management]
Backend1 --> GitHubOAuth[🔑 GitHub OAuth]
Frontend --> OpenAI[🧠 OpenAI API]
%% Database
Backend1 --> MongoDB[(🍃 MongoDB)]
Backend2 --> MongoDB
%% Styling
classDef aws fill:#ff9900,stroke:#232f3e,stroke-width:2px,color:#fff
classDef github fill:#24292e,stroke:#fff,stroke-width:2px,color:#fff
classDef spring fill:#6db33f,stroke:#fff,stroke-width:2px,color:#fff
classDef react fill:#61dafb,stroke:#20232a,stroke-width:2px,color:#20232a
classDef external fill:#e1e4e8,stroke:#586069,stroke-width:2px,color:#24292e
classDef database fill:#47a248,stroke:#fff,stroke-width:2px,color:#fff
class AWS,S3,ACM,EFS aws
class GitHub,Actions,GitHubOAuth,DevinAI github
class Backend1,Backend2 spring
class Frontend react
class Hostinger,OpenAI,LDAP,Biome,Vitest,Terraform,DockerHub external
class MongoDB database
```