Este trabajo se realizo para la materia "Aplicaciones Interativas" ciclo 2022. Proyecto que conecta profesores con estudiantes a traves de la contratacion de clases y la gestion de las mismas dentro de la aplicacion. Utiliza react en el frontend, express y mongo en el backend, y el estandar JWT para autenticacion y autorizacion.
Es la manera mas facil. El backend esta dockerizado junto a un contenedor de mongo con los scripts de inicializacion de la base de datos. Con correr make webup se generan ambos contenedores. El frontend se necesita levantar por separado, no esta contenerizado.
Tener instalado y corriendo docker + docker compose
Tener makefile
1. git clone [email protected]:gaxelac0/classhire.git
Backend
2. cd ./classhire (desde la raiz, no ./backend)
3. make webup
Frontend
4. cd ./classhire/frontend
6. npm install --save --force (el --force es obligatorio por una dependencia utilizada)
7. npm run start
Para finalizar
8. Conectarse a localhost:3000
9. Credenciales de prueba con clases y contrataciones cargadas:
- Estudiante: [email protected] pw 123456
- Profesor: [email protected] pw 123456
Sin Docker.
Tener NodeJS, npm...
Backend
1. git clone [email protected]:gaxelac0/classhire.git
2. cd ./classhire/backend
3. npm install
4. node ./bin/www.js
Frontend
5. cd ./classhire/frontend
6. npm install --save --force (el --force es obligatorio por una dependencia utilizada)
6. npm run start
7. Conectarse a localhost:3000
8. No hay cosas precargadas ya que conecta al mongoatlas y esta vacio.
Tener VSCode
Tener makefile
Para debuggear, pararse en la raiz del repositorio y ejecutar
0. cd ./classhire/
1. make code (abre una ventana de VSCode para el back y otra para el front)
Backend: quedarse en la carpeta raiz y ejecutar
2. make webup en la terminal de VSCode.
3. F5 en la pantalla de VSCode hara un attach al proceso en el contenedor.
Frontend:
4. cd ./classhire/frontend
5. npm install --save --force (si no se ejecuto ya previamente)
6. npm run start en la terminal de VSCode.
7. F5 en la pantalla de VSCode hara un attach al proceso corriendo en la maquina.
8. Conectarse a localhost:3000
9. Credenciales de prueba con clases y contrataciones cargadas:
- Estudiante: [email protected] pw 123456
- Profesor: [email protected] pw 123456
Para ver la documentacion (Swagger) de endpoints acceder a localhost:8080/doc con credenciales admin@admin (user@pw)
Para ver documentacion especifica de backend, dirigirse a https://github.com/gaxelac0/classhire/blob/main/backend/README.md
Para ver documentacion especifica de frontend, dirigirse a https://github.com/gaxelac0/classhire/blob/main/frontend/README.md
Nombre | Legajo | Tareas |
---|---|---|
Lacuesta, Gaston Axel | 1117695 | Backend, Frontend, Documentacion, QA |
Dodaro, Luciano | 1052888 | Backend, Frontend, Documentacion, QA |
Al comienzo de este proyecto ninguno de los integrantes sabiamos React ni nada de frontend. En este proyecto aprendimos a disenar, implementar e integrar con el backend una pagina completa desde cero, lo cual es de gran valor para nuestra carrera. Del lado del backend era la segunda vez que implementamos algo en Javascript/NodeJS asi que esto ayudo a mejorar los conocimientos respecto a este lenguaje. Lo mismo paso con la base de datos, primera vez que se utiliza mongo y javascript en una aplicacion de backend.