Skip to content

🌌 Asterium: proyecto fullstack sobre astronomía

Asterium es una plataforma fullstack dedicada a la astronomía, el cosmos y la ciencia del universo.
Combina un blog interactivo (frontend) y una API REST profesional (backend) para gestionar artículos, descubrimientos astronómicos, usuarios y contenido visual.

El objetivo del proyecto es hacer que la astronomía sea accesible, inspiradora y visualmente atractiva, integrando diseño, tecnología y comunidad.

🧭 Índice

  1. Visión general
  2. Frontend — Blog Interactivo
  3. Backend — API REST Asterium Server
  4. Equipo de desarrollo
  5. Notas finales

🚀 Visión general

Frontend: React + Vite + TailwindCSS
Backend: Node.js + Express + TypeScript + Sequelize + MySQL
Infraestructura: Cloudinary · JWT · Helmet · CORS
Testing: Jest · Supertest
Validación: Zod

🌠 Frontend — Blog interactivo

homepage

El frontend de Asterium permite a los usuarios:

  • 🪐 Leer artículos sobre planetas, galaxias y descubrimientos
  • ✍️ Crear y publicar sus propias entradas
  • 👤 Gestionar su perfil y actividad

El diseño está inspirado en el cielo nocturno: tonos oscuros, detalles estelares, transiciones suaves y tipografía moderna.

🧭 User Journey

  1. Página principal: flujo de artículos y secciones temáticas
  2. Registro / Inicio de sesión: autenticación mediante formulario
  3. Perfil del usuario: gestión del perfil y publicaciones propias
  4. Crear artículo: editor con soporte Markdown
  5. Ver artículo: página limpia con contenido y comentarios

🎨 Prototipo en Figma

🎨 Ver diseño en Figma

⚙️ Tecnologías (Frontend)

Categoría Tecnologías
Framework React + Vite
Estilos TailwindCSS
Navegación React Router
API Axios
Renderizado Markdown
Estado global Zustand
Validación Custom Validators

📁 Estructura del proyecto (Frontend)

/client  
  ├── src/  
  │   ├── assets/           # imágenes e íconos  
  │   ├── components/       # componentes UI  
  │   ├── pages/            # vistas (Home, Article, Profile)  
  │   ├── router/           # enrutamiento  
  │   ├── services/         # conexión con API  
  │   ├── store/            # estado global  
  │   ├── validators/       # validaciones  
  │   └── main.jsx

**⚡ Instalación y ejecución (Frontend)

# 1. Clonar el repositorio
git clone https://github.com/Asterium360/Aster-Client.git

# 2. Instalar dependencias
npm install

# 3. Ejecutar el proyecto
npm run dev

🛰️ Frontend disponible en → http://localhost:5173

🌌 Backend — API REST Asterium Server

Node.js · Express · TypeScript · Sequelize · MySQL · Cloudinary · JWT

Asterium Server es una API REST moderna y escalable para gestionar descubrimientos astronómicos con autenticación, roles y carga de imágenes.

🧱 Características principales

  • 🔐 Registro y autenticación de usuarios (roles: admin y user)

  • 🧩 CRUD completo de descubrimientos astronómicos

  • ☁️ Carga flexible de imágenes (archivo o URL) con Cloudinary

  • 🧠 Validación robusta con Zod

  • 🧱 ORM Sequelize conectado a MySQL

  • 🛡️ Middlewares personalizados para autenticación, validación y seguridad

  • 🧪 Pruebas unitarias con Jest y Supertest

🧭 Roles y permisos

Rol Listar Ver detalle Crear Editar Eliminar
🧍‍♀️ Usuario ✅ (solo sus descubrimientos) ✅ (solo sus descubrimientos)
🛡️ Admin ✅ (todos) ✅ (todos)

🔒 Solo los usuarios autenticados pueden crear, editar o eliminar.
👑 Los administradores tienen control total sobre todos los registros.

⚙️ Tecnologías utilizadas (Backend)

Categoría Tecnologías
Lenguaje TypeScript
Framework Express.js
ORM / DB Sequelize + MySQL
Validación Zod
Seguridad Helmet · CORS · JWT
Imágenes Cloudinary + Multer
Testing Jest · Supertest
Documentación Postman

📂 Estructura del proyecto (Backend)

├── config/               # Configuración de Cloudinary`  
├── controllers/          # Lógica de negocio (Asterium, Auth, Users)`  
├── middlewares/          # Auth, roles, validaciones`  
├── models/               # Modelos Sequelize`  
├── routes/               # Definición de endpoints`  
├── schemas/              # Validaciones Zod`  
├── seeders/              # Datos iniciales`  
├── tests/                # Pruebas unitarias`  
├── db.ts                 # Conexión MySQL`  
├── app.ts                # Configuración Express`  
└── index.ts              # Punto de entrada`

⚡ Instalación y ejecución (Backend)

# 1. Clonar el repositorio  
git clone https://github.com/Asterium360/Aster-Server.git  
cd server`

# 2. Instalar dependencias  
npm install`

# 3. Configurar variables de entorno  
# Crea el archivo .env:  
DB_NAME=asterium  
DB_USER=root  
DB_PASSWORD=tu_contraseña  
DB_HOST=localhost  
DB_PORT=3306  
JWT_SECRET=tu_token_secreto  
PORT=4000

# 4. Ejecutar en modo desarrollo  
npm run dev

🌍 Servidor disponible en → http://localhost:4000

☁️ Cloudinary integration

  • Imágenes gestionadas con Multer + CloudinaryStorage

  • Carpeta automática: Asterium_Discoveries

  • Se aceptan archivos locales o URLs externas

const image_url = req.file?.path || body.image_url || null;

🔐 Endpoints principales

🪐 Autenticación /auth

Método Endpoint Descripción Auth
POST /auth/register Registrar usuario
POST /auth/login Iniciar sesión (JWT)
PUT /auth/promote/:id Promover usuario a admin ✅ Solo admin

🌠 Descubrimientos /asterium

Método Endpoint Descripción Auth
GET /asterium Listar descubrimientos ✅ Logueados
GET /asterium/:id Ver detalle ✅ Logueados
POST /asterium Crear nuevo descubrimiento ✅ user/admin
PUT /asterium/:id Editar propio o admin ✅ user/admin
DELETE /asterium/:id Eliminar propio o admin ✅ user/admin

🧪 Testing

Archivo Propósito
auth.test.ts Registro, login y JWT
asterium.test.ts CRUD de descubrimientos
auth.ts Middleware de autenticación
checkRole.ts Middleware de permisos

Ejecutar pruebas:

npm test

📘 Documentación Postman

📗 Ver colección completa en Postman

Incluye todos los endpoints, ejemplos funcionales y tokens de prueba.

👩‍💻 Equipo de desarrollo

Nombre Rol GitHub LinkedIn
Anngie Project Lead, Fullstack Developer link link
Larysa Scrum Master, UI designer, Frontend Developer link link
Michelle Frontend Developer link link
Maryori Backend Developer link link
Sofia Backend Developer link link

Proyecto desarrollado en Factoría F5 – Bootcamp FullStack & DevOps.
Diseñado aplicando buenas prácticas de arquitectura, seguridad y documentación profesional.

Pinned Loading

  1. Aster-Client Aster-Client Public

    Proyecto full-stack dedicado a un blog sobre astronomía. Parte frontend.

    JavaScript

  2. Aster-Server Aster-Server Public

    Proyecto full-stack dedicado a un blog sobre astronomía. Parte backend.

    TypeScript

Repositories

Showing 3 of 3 repositories

Top languages

Loading…

Most used topics

Loading…