Este proyecto es una aplicación full stack en respuesta a Challenge laboral. Permite buscar y gestionar personajes de la serie Rick y Morty, utilizando la API pública de Rick y Morty.
- Frontend: React 18, GraphQL, Nextjs, TailwindCSS, Typescript
- Backend: Express, GraphQL, TypeScript, Typeorm, Redis
- Base de datos: PostgreSQL
- Dockerfile - docker compose
- Patrón hexagonal
- Docker y Docker Compose
- Node.js (versión 18 o superior)
- npm
- Clona el repositorio:
git clone https://github.com/Nagarehazh/FullStactkRaMChallenge.git
cd server
- Crea un archivo .env en la raíz del proyecto con el siguiente contenido:
DATABASE_URL=postgres://postgres:password@postgres_db:5432/rickmorty_db
DB_HOST=postgres_db
DB_PORT=5432
DB_USERNAME=postgres
DB_PASSWORD=password
DB_NAME=rickmorty_db
- Inicia los contenedores Docker:
docker-compose up --build
Este comando iniciará los contenedores para PostgreSQL, Redis y la aplicación del servidor.
- La aplicación estará disponible en http://localhost:4040/graphql
Para interactuar con la API GraphQL, utiliza la configuración de Apollo Studio Explorer, que estará disponible en http://localhost:4040/graphql
una vez que la aplicación esté en funcionamiento.
- Obtener personajes:
query GetCharacters {
getCharacters(status: "Alive", species: "Human") {
id
name
status
species
gender
origin
image
comments {
id
content
}
favorites {
id
}
}
}
- Importar personajes:
mutation ImportCharacters {
importCharacters(count: 15) {
id
name
status
}
}
- Agregar un comentario:
mutation AddComment {
addComment(characterId: "1", content: "Este es un personaje genial") {
success
message
comment {
id
content
}
}
}
- Marcar/Desmarcar favorito:
mutation ToggleFavorite {
toggleFavorite(characterId: "1") {
success
message
favorite {
id
characterId
}
}
}
- Verificar el estado de salud del servidor:
query HealthCheck {
healthCheck {
status
}
}
cd client
- instalamos las dependencias:
npm install
- Inicia la aplicación:
npm run dev
La aplicación estará disponible en http://localhost:3000
- Busca personajes por nombre
- Filtra personajes por estado, especie, género y origen
- Agrega comentarios a los personajes
- Marca tus personajes favoritos
- Cron Job: node-cron para actualización automática de personajes
- Seed inicial de base de datos con 15 personajes
Quiero expresar mi más sincero agradecimiento por la oportunidad de participar en este challenge. Espero que el resultado cumpla con sus expectativas y estoy ansioso por nuestro encuentro. ¡Un gran abrazo Team!
con cariño Harley Zapata