Plataforma educativa open source para compartir y visualizar recursos académicos universitarios
ePAUTA es una plataforma web diseñada para facilitar el acceso a recursos académicos de cursos universitarios. Permite a estudiantes visualizar y descargar material educativo organizado por programas académicos y asignaturas.
- 📚 Visualización de PDFs y documentos directamente en el navegador
- 🔍 Organización por programas académicos (EIT, EOC, EII, Plan Común)
- 📱 Diseño responsive y moderno
- ⚡ Carga rápida con Astro y SSR
- 🎨 Interfaz limpia construida con Tailwind CSS y shadcn/ui
- ☁️ Almacenamiento en la nube con Cloudflare R2
- Framework: Astro v4.3.5
- UI Library: React v18.2.0
- Styling: Tailwind CSS v3.4.1
- Components: shadcn/ui + Radix UI
- PDF Viewer: react-pdf-viewer v3.12.0
- Storage: Cloudflare R2 (AWS S3 compatible)
- Deployment: Vercel
- Language: TypeScript v5.3.3
- Node.js 18.0 o superior
- npm o pnpm
- Cuenta de Cloudflare con R2 habilitado (para almacenamiento de archivos)
- Clona el repositorio:
git clone https://github.com/open-source-udp/epauta.git
cd epauta- Instala las dependencias:
npm install- Configura las variables de entorno:
cp .env.example .envEdita el archivo .env con tus credenciales de Cloudflare R2:
# Cloudflare R2 Configuration
CLOUFLARE_TOKEN_VALUE=your_cloudflare_token_here
R2_ENDPOINT=https://<account_id>.r2.cloudflarestorage.com
R2_ACCESS_KEY_ID=your_access_key_id_here
R2_SECRET_ACCESS_KEY=your_secret_access_key_here
R2_BUCKET_NAME=epauta
R2_PUBLIC_DOMAIN=https://yourdomain.comPara obtener las credenciales de R2, consulta la Guía de configuración de R2.
- Inicia el servidor de desarrollo:
npm run devAbre http://localhost:4321 en tu navegador.
| Comando | Acción |
|---|---|
npm install |
Instala las dependencias |
npm run dev |
Inicia el servidor de desarrollo en localhost:4321 |
npm run build |
Construye el sitio para producción en ./dist/ |
npm run preview |
Previsualiza la build de producción localmente |
npm run astro |
Ejecuta comandos de Astro CLI |
npm run test:r2 |
Prueba la conexión con Cloudflare R2 |
npm run upload:r2 |
Sube archivos a Cloudflare R2 |
/
├── public/ # Archivos estáticos
├── src/
│ ├── components/ # Componentes React y Astro
│ │ ├── ui/ # Componentes de shadcn/ui
│ │ ├── FileViewer.jsx
│ │ ├── PDFViewer.jsx
│ │ └── ...
│ ├── data/ # Datos de cursos y recursos
│ │ ├── plan-comun/
│ │ ├── eit/
│ │ ├── eoc/
│ │ └── eii/
│ ├── layouts/ # Layouts de página
│ ├── lib/ # Utilidades y helpers
│ │ ├── storage.ts # Cliente de Cloudflare R2
│ │ └── utils.ts
│ ├── pages/ # Rutas de la aplicación
│ └── styles/ # Estilos globales
├── scripts/ # Scripts de utilidad
├── docs/ # Documentación adicional
└── package.json
Este proyecto utiliza Cloudflare R2 para el almacenamiento de archivos. Para configurar R2 consulta la Guía rápida de R2
Las contribuciones son bienvenidas. Por favor, lee nuestra Guía de contribución antes de enviar un Pull Request.
- Fork el proyecto
- Crea una rama para tu feature (
git checkout -b feature/AmazingFeature) - Commit tus cambios (
git commit -m 'Add: nueva característica') - Push a la rama (
git push origin feature/AmazingFeature) - Abre un Pull Request
Este proyecto está bajo la Licencia MIT. Consulta el archivo LICENSE para más detalles.
Samuel Angulo
- GitHub: @polaarts
Si encuentras un bug o tienes una sugerencia:
- Abre un Issue
- Consulta nuestra Política de seguridad para reportar vulnerabilidades
Hecho con ❤️ para la comunidad universitaria.