Projecte Borsa de Treball

De Wiket
Salta a la navegació Salta a la cerca

Descripció del projecte

En una primera fase (curs 2018-2019) s'ha pensat en una aplicació web que permeti a les entitats oferir feines de mà d’obra especialitzada i que responen als perfils dels cicles de FP impartits pels centres adherits.

En una segona fase (curs 2019-2020) s'ha pensat en ampliar la funcionalitat en diversos aspectes de gestió acadèmica dels centres i pels alumnes d'FP. Així hem passat al projecte de Portal Integral FP.

El repositori de codi està disponible a Github:

https://github.com/AWS2/BorsaDeTreball


Especificacions no funcionals

  • El projecte es realitzarà amb la tecnologia web Django (Python).
  • Es publicarà en un servidor (AWS) accessible per un domini públic (borsa.ieti.cat)
  • Es protegirà el servidor mitjançant un servei de proxy Cloudflare.


Backlog Fase 2 (curs 2019-2020)

Millora interfície d'usuari borsa. Visualització en el front-end

Desenvolupament de pàgines al front-end. Hi ha 2 àrees: alumne i empresa.

  • Àrea d'alumne: ha de poder visualitzar les ofertes que li son rellevants.
  • Àrea d'empresa: editor d'ofertes (crear, llistar, esborrar i modificar).

Tasques:

  1. Crear una nova ruta i pàgina en el front-end per visualitzar les ofertes (alumnes).
  2. Crear una nova ruta i pàgina en el front-end per crear ofertes (empresa).
  3. Crear una nova ruta i pàgina en el front-end per llistar les ofertes emeses (empresa).
  4. Des de la llista d'ofertes (empresa) hi ha d'haver un botó per esborrar les ofertes emeses.
  5. Crear una nova ruta i pàgina en el front-end per editar ofertes emeses (empresa).
  6. Filtrar només les ofertes que a l'usuari li son rellevants (i segons sigui empresa, alumne o admin_centre).
  7. Posar una entrada al menú lateral i top (material design) per accedir a les ofertes (alumnes).
  8. Posar una entrada al menú lateral i top (material design) per accedir a l'editor ofertes (alumnes).
  9. Aplicar un disseny responsive de materialize per visualitzar les ofertes.

Implementació de tests per al mòdul de Scrum

  1. Entendre Selenium i seguir els tests implementats al mòdul borsApp.
  2. Disseny dels tests per al mòdul de Scrum: què ha de veure cada rol (profe, alumne).
  3. Partir de la BD de test amb usuaris i contrasenyes predefinits (testdb.json)
  4. Ampliar la BD de test i guardar-la en una fixture nova (per ex. testdb_scrum.json)
  5. Testejar que usuaris profe poden crear projectes, specs, sprints.
  6. Testejar que els alumnes poden crear equips.
  7. Testejar que els alumnes poden veure les dades adequades, i no veuen mes del compte.
  8. Testejar que els alumnes poden veure els projectes del seu insti, i no els dels altres centres.
  9. Testejar que els profes poden veure els projectes del seu insti, però no els d'altres centres.


Geolocalització usuari i ofertes: distància a l'empresa

  1. Crear una nova ruta i pàgina en el front-end per visualitzar les empreses (totes) i la distància des del centre on està l'alumne estudiant (mitjançant objecte Titol).
  2. Implementar camp de geolocalització en els usuaris i distància màxima de les ofertes (caldrà migració).
  3. Afegir el camp de geolocalització en el perfil del frontend de l'usuari (introducció manual, amb mapa OpenStreetMaps, com en el backend).
  4. Fer un merge amb la branca de millora de la interfície d'usuari.
    Implementar càlcul de distància entre la posició del perfil d'usuari i la de l'empresa ofertant.


Nova secció de startups

En aquesta nova secció es tracta de que la gent amb idees emprenedores però sense recursos econòmics puguin anunciar el seu projecte per cercar partners tecnològics o d'altres tipus. O sigui que serà molt similar a la borsa de treball, però es podrà anunciar qualsevol persona que es vulgui donar d'alta com a startup.

Com que hi haurà autoregistre per a les startups, estem exposats al spammers. Per evitar-ho, les ofertes startup

  1. Crear nova aplicació anomenada "startup" dintre del portal.
  2. Implementar un botó al perfil d'usuari (alumnes) per donar-se d'alta per rebre les ofertes de les startups. Caldrà afegir camp al model d'usuari.
  3. Dissenyar i crear els models de dades necessaris (modificació model Usuari, oferta de startup).
  4. Crear nou rol "startup" (grup, similar a profes, alumnes, admin_borsa o admin_empresa).
  5. Implementar els permisos adients necessaris del nou rol a l'arxiu de comanda permisos.py
  6. Implementar un autoregistre d'usuaris en la pàgina principal. Caldrà una pantalla d'acceptació dels ToS (Terms of Service) per dona-se d'alta com a startup. Assignar rol "startup" al nou usuari.
  7. Enviar email de confirmació al nou usuari autoregistrat. L'usuari podrà entrar després mitjançant OAuth (Google).
  8. Crear una nova ruta i pàgina per visualitzar les ofertes de les startups.
  9. Posar una entrada al menú lateral i top (material design) per visualitzar les ofertes de les startups (només alumnes).
  10. Posar una entrada al menú lateral i top (material design) per gestionar les ofertes de les startups (usuaris startup).
  11. Crear una nova ruta i pàgina per visualitzar les ofertes de les startups.
  12. Posar una entrada al menú lateral i top (material design) per visualitzar les ofertes de les startups (només alumnes).

Nova secció de sol·licitud d'alumnes en dual

...


Login amb user/pass al frontend

Actualment el frontend només permet entrar mitjançant OAuth i només amb Google. Els admins poden convidar usuaris d'altres proveidors, però aquests no poden logar-se amb OAuth. Per tant, cal un mètdode de entrada estàndard amb usuari (email) i contrasenya.

  1. Implementar nova ruta i pàgina de login amb usuari (email) i contrasenya.
  2. Implementar


Nova secció de control d'assistència

De moment no l'implementem.


Backlog Fase 1 (curs 2018-2019)

  1. Es vol una web accessible des d’un domini públic.
  2. La app ha de poder enviar emails.
  3. Cal fer un seeder amb dades d'exemple de centres, cicles i alumnes d'exemple per testejar les funcions.
  4. La borsa ha de contemplar, al menys, els següents objectes:
    • Ofertes de feina
    • Demandes de feina
    • Entitats (ofertants)
    • Àrees territorials (comarques, SSTT?)
    • Centres Educatius
    • Cicles Formatius
    • Alumnes
    • Administradors
    • Categories
    • Missatges interns
  5. Els usuaris (grups/permisos) podran ser:
    • Entitats: poden crear ofertes
    • Centres: poden ofertar cicles i inscriure alumnes
    • Alumnes: poden visualitzar ofertes rellevants i contactar amb l’empresa
    • Administradors: poden gestionar categories, centres, cicles i gestionar les inscripcions d'alumnes en massa
  6. Els Centres Educatius poden assignar-se ells mateixos diversos cicles formatius (backend)
  7. Tots els usuaris tenen imatge de perfil/logo i un camp de descripció de la seva activitat (com a empresa o com a estudiant o com a centre).
  8. Vista de perfil d'usuari (frontend) per canviar imatge, descripció i el nickname (que ha de ser únic i sense espais).
  9. Les entitats poden publicar ofertes de feina destinades a un o diversos cicles i amb diverses categories/tags.
  10. Els alumnes o usuaris podran subscriure alertes d'ofertes de treball de diverses maneres. Les subscripcions seran del tipus:
    1. Pel centre al què està adscrit l'alumne
    2. Pel centre al què està adscrita l'empresa
    3. Per la categoria o categories interessades
    4. Pel cicle al què està adscrit l'alumne
    5. Per proximitat al centre educatiu
    6. Per proximitat a l'empresa
  11. Els alumnes poden crear tantes subscripcions com vuguin, i no estaran limitades pel cicle que hagin cursat.
  12. A l'inscriure un alumne es crearà una subscripció per defecte a les ofertes de treball del seu centre educatiu i el seu cicle cursat.
  13. Hi haurà un botó de "reset subscripcions" per esborrar totes les subscripcions creades i deixar només la "per defecte".
  14. Els alumnes subscrits a alerta podran rebre emails de les ofertes en forma de digest és a dir, un resum del dia.
  15. Els alumnes podran visualitzar les dades de l’empresa per a contactar-la.
  16. Els alumnes podran contactar amb les empreses mitjançant missatge intern de la borsa de treball per demanar detalls sense revelar la seva identitat.
  17. Els alumnes podran carregar el seu CV al seu perfil, però NO es publicarà per motiu de protecció de dades RGPD.
  18. Els alumnes poden mantenir el seu CV privat, i davant d’una oferta disposaran d’un botó “enviar CV” que respon automàticament a l’empresa enviant el CV. Caldrà avisar l’alumne que amb l’acció d’enviar CV l’empresa disposarà de les dades que ell hagi consignat en el document privat.
  19. Les entitats podran rebre missatges dels alumnes que s’interesin per una oferta, i contestar-los per missatge intern.
  20. Les ofertes de feina i els camps de descripció dels usuaris s’han de poder redactar amb text enriquit (HTML / WYSIWYG), tant a frontend com a backend.
  21. Les ofertes de feina poden contenir imatges incrustades i arxius adjunts.
  22. Els administradors de la borsa podran donar d’alta nous alumnes a través d’incloure la seva adreça de correu electrònic en el sistema.
  23. Els administradors poden desactivar alumnes o entitats (usuaris) que tinguin un comportament incorrecte en les seves publicacions o dades de perfil.
  24. L’usuari podrà accedir mitjançant autenticació externa de Google i Microsoft (OAuth).
  25. Quan un usuari es loga per primer cop haurà d'acceptar els termes d'ús i de privacitat de la borsa.
  26. Les entitats no podran mai veure dades dels alumnes.
  27. Les entitats podran visualitzar quants alumnes hi ha inscrits a cada cicle, i a cada categoria.
  28. Els cicles contindran informació de la formació realitzada (enllaços a plans d’estudi oficial, camps de personalització per a pla d’activitats de les FCT/DUAL o similars).
  29. A les ofertes de treball se li podrà adjuntar etiquetes (tags) per facilitar la classificació i filtratge (p.ex. Llenguatges de programació, programari, dispositius, tecnologies, coneixements particulars, acreditacions, certificacions, etc.)
  30. Els alumnes podran subscriure’s a aquestes etiquetes per veure i rebre les ofertes relacionades.
  31. Les categories/tags poden estar aniuades
  32. Les noves categories les hauran d’introduir els administradors.
  33. Les entitats i alumnes tindran un botó per suggerir una categoria, pero no es crearà immediatament, sinó que es notificarà als administradors per ser aprovada.
  34. Les entitats tindran un formulari per introduir les categories/tags amb funció d’autocompletar.
    Veure etiquetatge de stackoverflow per exemple: https://stackoverflow.com/questions/ask
  35. Vista principal d'alumne: visualitzar ofertes i filtrar (per tag/categoria i territori)
  36. Vista perfil alumne: imatge, nickname, descripció, (igual que usuari) + afegim categories subscrites amb checkbox jeràrquic, collapsible i/o autocompletable.
  37. Vista de missatges interns per "xat". L'usuari pot activar que quan se li escrigui missatge intern, se li envii un email amb el contingut del missatge. Els missatges interns quedaran registrats a l'aplicació per ser consultats a la vista.

Dubtes:

  • El nom i cognom dels alumnes el forcen els centres pq sigui real? Dona mes feina.
    • Alternativa: agafar nom i cognoms del OAuth Google/MS
  • Cal classificar els centres en comarques, SSTT, o tots dos?

Requeriments de permisos

Hi haurà aquests tipus d'usuari:

  1. professors
  2. alumnes
  3. administradors de borsa (un per centre)
  4. superadministrador

El comportament dels permisos ha de complir:

  1. Els administradors de centre poden:
    1. crear usuaris professors adscrits al centre
    2. crear usuaris alumnes adscrits al centre
    3. crear centres de treball adscrits
    4. cercar centres de treball (tots)
    5. visualitzar només els usuaris (professors, alumnes) del seu centre
  2. Els alumnes podran:
    1. veure les ofertes de treball



Equips

Formarem equips de treball per encarregar-se de parts diferents del projecte:

  • Model i BD
    • Crear model
    • Seeder: crear dades de test
  • Frontend
    • Disseny (CSS, aspecte)
    • Views (vista ofertes, filtres, perfil, ...)
  • Backend:
    • Càrrega arxius, CV, imatge perfil, logo
    • Admin, CSS, personalització de la visualització segons usuaris
  • Producció i desplegament
    • Desplegament en AWS amb Apache2
    • Enviament d'emails
    • Comandes per enviament de digest
  • PLUGIN Social login (OAuth Google i Microsfot)
    • Invitacions a alumnes i acceptació de termes d'ús de la web
    • Invitació d'usuaris i importació
  • PLUGIN WYSIWYG o Text enriquit (CKeditor, TinyMCE o similars)
    • backend
    • frontend
    • càrrega d'imatges des del propi editor
  • PLUGIN Select2 (autocompletar categories/tags)
    • frontend (filtre)
    • backend (afegir etiquetes als anuncis per part de les entitats)


Documentació: tots els equips documentaran a la wiki del projecte Github

SPRINTS

Sprint #1

  1. Es vol una web accessible des d’un domini públic.
  2. Cal fer un seeder amb dades d'exemple de centres, cicles i alumnes d'exemple per testejar les funcions.
  3. Login.(' L’usuari podrà accedir mitjançant autenticació externa de Google i Microsoft (OAuth).').
  4. Quan un usuari es loga per primer cop haurà d'acceptar els termes d'ús i de privacitat de la borsa.
  5. Frotend vista Alumne:
    • Llistat ofertes.
    • Filtres per aplicar(tag , data , localitat, categoria).
  6. FrontEnd Vista Alumne:
    • Mis ofertas
  7. Paginació vista alumne.
  8. FrontEnd Vista Alumne:
    • detall cada oferta en el llistat Clickable(data oferta, nom empresa, jornada,nom oferta,tags, categories, localitat).
  9. FrontEnd Vista Alumne:
    • Pagina Detall de la oferta( conté les dades de la especifiació 7 a més de la descripció, salari(Opcional), Gent subscrita,numero vacants, contactes, Boto seguir oferta i desubscribirse, les ofertes poden contenir imatges o archius adjunts).
  10. FrontEnd NavBar:
    • info si usuari esta logat, accés a perfil i logout.
  11. Vista perfil alumne:
    • Vista perfil alumne: imatge, nickname(modificable), descripció, (igual que usuari) + afegim categories subscrites amb checkbox jeràrquic, collapsible i/o autocompletable.
    • L'usuari pot activar que quan se li escrigui missatge intern, se li envii un email amb el contingut del missatge. Els missatges interns quedaran registrats a l'aplicació per ser consultats a la vista
    • Pujar CV.
    • Botó Guardar i Cancelar.
  12. Panel de control Entitat:
    • Crear Oferta.
    • Les meves Ofertes publicades.
    • Crear tag(Afegir nou tag).
    • Afegir alumne(només Centres Educatius).
  13. Crear oferta:
    • Form(conté les dades de la especifiació 7 a més de la descripció, salari(Opcional), Gent subscrita,numero vacants, contactes, Boto seguir oferta i desubscribirse, les ofertes poden contenir imatges o archius adjunts).
    • Les entitats tindran un formulari per introduir les categories/tags amb funció d’autocompletar.
  14. Meves Ofertes Entitat:
    • Visualitzar ofertes(igual que espec. 7).
    • Dos botons amb modificar i eliminar al costat de cada oferta.
    • clikable oferta
  15. Detall oferta de treball:
    • Visualitzar tota la oferta.
    • Estat de la oferta.
    • Gent subscrita.
  16. Admins i centres poden donar d'alta usuaris simplement amb email.
  17. Els alumnes subscrits a una categoria podran rebre emails de les ofertes en forma de digest és a dir, un resum del dia.
  18. Crear comanda Django que envii els digest del dia (ofertes que li afecten)
  19. Programar el CRON diari per al digest (producció) i documentar el seu ús.
  20. Tots els usuaris tenen:
    • imatge de perfil/logo
    • camp de descripció/presentació de la seva activitat (com a empresa o com a estudiant o com a centre)
    • Arxiu adjunt (CV, tríptic, etc.)