OhMyCode es una aplicación web realizada para el Hackathon de "Hack The System". Se trata de una plataforma de aprendizaje en la que se busca acercar la programación a las personas que quieren iniciarse en este mundo, por lo que principalmente la idea está enfocada en aprender a programar desde cero.
No obstante se tiene en cuenta la posibilidad de escalar esta idea a más formaciones dentro de la misma plataforma.
Para el correcto funcionamiento de la aplicación será necesario renombrar el archivo ".env.example" por ".env" y modificar si fuera necesario, los datos de ejemplo proporcionados como variables de entorno.
En primer lugar, debemos usar el siguiente comando para instalar todas las dependencias del proyecto:
npm install
Para inicializar la base de datos con los datos de ejemplo, se ha creado un Script que realizará todo este proceso. Para ello debe ejecutar el siguiente comando desde la raíz del proyecto:
npm run install_db
Este proceso creará la base de datos con 2 cursos y 1 usuarios de prueba:
user@example.com - Contraseña: 1234
Para arrancar el proyecto en modo desarrollo se usará:
npm run dev
Se incluye una colección de "POSTMAN" para importarla y tener ya las rutas correspondientes
POST:
Registro de usuarios:
/apiv1/register
Al hacer una petición "POST" a la siguiente ruta con usuario y contraseña, devuelve un TOKEN implementado con JWT para poder usar en la cabecera "Authorization" en el resto de peticiones:
/apiv1/authenticate
Para poder crear cursos usando la siguiente petición, añadir el TOKEN en la cabecera "Authorization":
/apiv1/cursos
GET:
Para poder mostrar los cursos usando la siguiente petición, añadir el TOKEN en la cabecera "Authorization":
/apiv1/cursos
Para poder mostrar los usuarios usando la siguiente petición, añadir el TOKEN en la cabecera "Authorization":
/apiv1/usuarios
PUT:
Para poder actualizar la lista "users" en los cursos (usuarios inscritos en un curso), usar la siguiente petición:
/apiv1/cursos/id
Para poder actualizar la lista "courses" en los usuarios (cursos en los que está inscrito un usuario), usar la siguiente petición:
/apiv1/usuarios/id
DELETE:
Para eliminar un curso, usar la siguiente petición:
/apiv1/cursos/id
Para eliminar un usuario, usar la siguiente petición:
/apiv1/usuarios/id