Este es el repositorio del backend del proyecto Reepos (una webapp basada en Github) que incluye API, Autenticación con JWT y conexión con la base de datos.
- Express.js - Framework Backend
- PostgreSQL - Base de Datos
- JWT - Autenticación con Tokens
- Supabase - Almacenamiento en la Nube
- Zod - Validación de datos
- Simple-Git - Operaciones internas con Git
- Achiver - Compresión en formato ZIP
Lista de recursos disponibles por la API junto a sus endpoints, métodos HTTP y objeto de petición.
URL base: /auth/
Método | Endpoint | Body | Descripción |
---|---|---|---|
POST |
/signup |
{ "username": "string", "password": "string" }
|
Registrar un usuario |
POST |
/signin |
{ "username": "string", "password": "string"}
|
Autenticar un usuario |
POST |
/is-authenticated |
{}
|
Comprobar con si existe un token de autenticación |
URL base: /users/
Método | Endpoint | Body / Query | Descripción |
---|---|---|---|
DELETE |
/delete |
{ "password": "string" } |
Eliminar un usuario |
PUT |
/change-username |
{ "newUsername": "string", "password": "string" } |
Cambiar nombre de usuario |
PUT |
/change-password |
{ "newPassword": "string", "password": "string" } |
Cambiar contraseña |
PUT |
/change-description |
{ "newDescription": "string" } |
Cambiar Descripción/Biografia |
POST |
/upload-image |
{ "user_img": "image" } |
Actualizar imagen de usuario |
POST |
/follow-user |
{ "username": "string" } |
Seguir a un usuario |
GET |
/search |
?username="string" |
Buscar usuarios por nombre de usuario |
GET |
/followers |
{} |
Obtener seguidores de un usuario |
GET |
/profile |
{} |
Obtener información sobre el perfil del usuario |
URL base: /repositories/
Método | Endpoint | Body / Query | Descripción |
---|---|---|---|
POST |
/create |
{ "repoData": { "name": "string", "description": "string", "languages": "string[]" } } |
Registrar información del repositorio |
POST |
/upload-cloud |
{ "repoName": "string" } |
Subir archivos del repositorio a la nube (Supabase) |
GET |
/download |
?repoName="string" |
Obtener la url pública de un repositorio comprimido en zip |
PUT |
/like |
{ "repoName": "string" } |
Dar like a repositorio |
DELETE |
/ |
{ "repoName": "string" } |
Eliminar un repositorio |
GET |
/ |
{} |
Obtener repositorios de un usuario a partir del token |
PUT |
/change-name |
{ "newRepoName": "string", "repoName": "string" } |
Cambiar nombre de repositorio |
PUT |
/change-description |
{ "newDescription": "string", "repoName": "string" } |
Cambiar descripción de repositorio |
URL base: /files/
Método | Endpoint | Body / Query | Descripción |
---|---|---|---|
GET |
/download |
?id="string"&repoName="string" |
Obtener url pública de un archivo |
POST |
/upload |
{ "path": "string", "repoName": "string", "file": "img" } |
URL base: /contributors/
Método | Endpoint | Body / Query | Descripción |
---|---|---|---|
GET |
/ |
?repoName="string" |
Obtener contribuidores de un repositorio |
URL base: /commits/
Método | Endpoint | Body / Query | Descripción |
---|---|---|---|
GET |
/ |
?repoName="string" |
Obtener commits de un repositorio |