Membresía : Sistema de gestión de subscripciones

Anuncio
MEMBRESÍA
ProyectoJavaEEdeFindeCarrera
JulioM.FernándezJiménez
Membresía|JulioM.FernándezJiménez
Amimaridoyalamúsica(eneseorden).
Sinningunodeellospodríahaberculminadomiviaje.
2
Membresía|JulioM.FernándezJiménez
Tabladecontenido
Descripcióndelproyecto................................................................................................5
Objetivosdelproyecto...................................................................................................6
PlayFramework.............................................................................................................7
ArquitecturayDiseño.....................................................................................................9
Componentedeusuarios.........................................................................................................9
Componentedesubscripciones.............................................................................................10
Componentedecomunicaciones...........................................................................................10
Componentedeestadísticas..................................................................................................11
PlanificacióndelTrabajoRealizado...............................................................................12
PlanificaciónInicial................................................................................................................12
PlanificaciónReal..................................................................................................................13
Casosdeuso.................................................................................................................14
Usuariosadministrativos.......................................................................................................14
Gestióndesocios..................................................................................................................18
Gestióndesubscripciones.....................................................................................................23
Gestióndemensajeríaycomunicación..................................................................................27
Estadísticas...........................................................................................................................29
DiagramadeClases......................................................................................................31
DiagramadeComponentes..........................................................................................33
Diagramageneraldecomponentes.......................................................................................34
Diagramadecomponentesusuarios......................................................................................35
Capadepresentación..............................................................................................................35
Capadenegocios.....................................................................................................................36
Capadeintegración.................................................................................................................36
Diagramadecomponentessubscripción...............................................................................37
Capadepresentación..............................................................................................................37
Capadenegocios.....................................................................................................................38
Capadeintegración.................................................................................................................39
Diagramadecomponentescomunicación.............................................................................40
Capadepresentación..............................................................................................................40
Capadenegocios.....................................................................................................................41
Capadeintegración.................................................................................................................42
Diagramadecomponentesestadísticas.................................................................................43
Capadepresentación..............................................................................................................43
Capadenegocios.....................................................................................................................44
Capadeintegración.................................................................................................................44
LainterfazdeUsuario...................................................................................................45
Plantillageneraldelainterfazdeusuario..............................................................................46
PortalPrincipal......................................................................................................................46
Vistasdelistados...................................................................................................................48
Vistasdeformulario..............................................................................................................49
FormulariodeSocios...............................................................................................................49
3
Membresía|JulioM.FernándezJiménez
Formulariodesubscripción.....................................................................................................50
Formularioderegistrodepago...............................................................................................51
Formularioderegistrodepagoporcorreo.............................................................................52
Formulariodeplantillademensajes.......................................................................................53
Formulariodemensajes..........................................................................................................53
Implementación...........................................................................................................55
SoftwareUtilizado.................................................................................................................57
EstructuradelCódigo............................................................................................................59
CapadePresentación............................................................................................................60
CapadeNegocios..................................................................................................................62
LaCapadeIntegración.........................................................................................................62
Conclusiones................................................................................................................65
Fuentes........................................................................................................................66
Recursos................................................................................................................................66
Artículos................................................................................................................................66
4
Membresía|JulioM.FernándezJiménez
Descripcióndelproyecto
Elproyectocuyoanálisissepresentaacontinuaciónconsistedeunaaplicaciónonlinepara
elserviciodelagestióndesociosdelaAgrupaciónAstronómicadeTerrassa,aunquesu
funcionalidadpuedeseraplicableacualquierasociaciónindependientementedesu
actividad.
Laaplicación,denominada“Membresía”,permitegestionarelcobrodelascuotasdelos
sociosdeunaagrupaciónasícomolainformaciónpersonaldeéstos.Medianteel
componentedesubscripciones,elgestordelsistemapuedecrearunaomás
subscripcionesyasociarlasalossociosparticipantes.Lossociospuedenrealizarlospagos
deformaparcialodeunasolavez,einclusoaplazarlospagossiasílodesean.Elsistema
permitetambiénelenvíodecorreosporpartedeladministradordelsistemaasussocios
asícomoelenvíoautomáticodeavisosyalertasdepago.
5
Membresía|JulioM.FernándezJiménez
Objetivosdelproyecto
Sepuededecir,queanivelprofesionalesteproyectorepresentalamigracióndemis
conocimientosendesarrollowebenPHPaunentornodetrabajobasadoenJava.Ésta,y
laconsolidacióndelasdestrezasadquiridasdurantemisañosdecarrera,sonsinduda
algunalasprincipalesmotivacionesparalacreacióndeestetrabajo.Dentrodelámbito
profesional,sebuscaalcanzarunniveldeconocimientodellenguajedeprogramación
Java,ydelatecnologíaJavaEE,losuficientementealtocomoparapodercompetirenel
mercadolaboralactual.
6
Membresía|JulioM.FernándezJiménez
PlayFramework
Playesunframeworkdedesarrollobasadoenprogramaciónreactivaparadesarrollosen
JAVAyScala.Esteframeworkhasidodesarrolladopensandoenlaproductividaddel
desarrolladoryenenelrendimientodelhardware,deformaquepromueveunmodelode
hardwarequeescalahorizontalmenteenvezdeltradicionalescalamientoverticaldelos
tradicionalessistemaJavaEE.
Playpermitelaedicióndecódigoentiemporealsinnecesidaddereiniciarelcontenedor
deaplicaciones.Conlafinalidaddeproveerundesarrollocontinuo,Playdetectalos
cambiosrealizadosenelcódigo,locompilaycargaenelJMVsinnecesidaddeinteracción
porpartedelusuarionidereiniciarlamaquinavirtual.
LacapacidadreactivadePlaylohaceúnicoensugéneroalpermitirmúltiplesllamadas
asincrónicassimultáneasalservidordeformaquesepuedenactualizarsegmentos
concretosdelaaplicación.Porotrolado,PlayesRESTfulpornaturalezagraciasasu
sistemaderoutingysusoportenativoparadatosJSON.
AunquePlaypuedeserutilizadoparadesarrollaraplicacionesanivelentreprise,éste
difieredelsistematradicionalJavaEEalcarecerdeservlets.Laausenciadeservletshacede
Playunframeworkstateless,esdecir,sinpersistenciadeinformaciónentresesiones.
ConPlayeldesarrolladorpuedatrabajarconellenguajedeprogramaciónJAVAoScalade
formadedicadaoenconjunto,aunqueestaúltimaopciónestadesaconsejada.Scalaesun
lenguajedeprogramaciónorientadoaobjetospuroenelsentidodequecadavaloresun
objetodentrodeladeclaracióndellenguaje.
ApesardelasinnovacionesyventajasquePlayofrece,éstenodejadeserunsistema
basadoenelmodeloestructuralMVC.EnPlay,todaslaspeticionesHTTPpasanporel
sistemadeenrutamientodelframeworkquetraducelaURLydirigelasolicitudal
7
Membresía|JulioM.FernándezJiménez
controladoradecuado.Elcontroladorinteraccionaconelmodeloymanipulaelsistema
persistentededatosparagenerarlaestructuradedatossolicitada.Actoyseguido,el
controlador,atravésdelasvistas,generaelHTMLsolicitadoyloenvíacomorespuesta.
LacapademodelodePlayhaceusodeEbeancomosistemaORMparalainteraccióncon
lossistemasdepersistenciadedatos.EbeanORMestabasadoenelmodeloJPAdeJava,
loquehacequesucurvadeaprendizajeseamínimaparaprogramadoresfamiliarizados
conelentornoJavaEE.Enadición,Ebeanpermitequepuedahacerseusodecualquier
sistemadegestióndebasededatos.
8
Membresía|JulioM.FernándezJiménez
ArquitecturayDiseño
Laaplicaciónestácompuestaporunaseriedemódulosocomponentes,cadaunodeellos
encargadodeunafunciónconcretaenelsistema.Loscincocomponentesprincipalesdel
sistemadeescribenacontinuación.
Componentedeusuarios
Elcomponentedeusuariosseencargadegestionaraquellosusuariosregistradosde
ámbitoadministrativosasícomolagestiónyelaccesoalsistemaatravésdela
autenticacióndeusuarios.Laautenticaciónserealizanmedianteelusodelemailyla
contraseña.Estecomponentepermitetambiénsolicitarlarestauracióndelaclavede
accesoencasodehaberlaolvidado.
Enadición,tambiénpermitecrearymodificarusuariosexistentes,realizarcambiosenel
perfilpersonaldelusuarioqueestáautenticadoyeliminarusuariosexistentes.Desdeeste
componentetambiénesposiblelistartodoslosusuariosactualmenteregistrados,listado
desdedondesepuedeaccederaaccionesconcretassobrelosobjetosenumerados,tales
comolasdeeditaroeliminarusuario.
Estacomponentetambiénpermitelagestióndelossociosdelaasociaciónydelciclode
vidadecadaunodelossocios.
Elcomponentepermitelistartodoslossociosytomaracciónsobrecadaunodeellos
desdeelinterface.Estasaccionespuedenserlasdemodificarlosdatospersonales,
eliminarelsocioocreaunonuevo.Enadiciónesposibleañadirunsocioauna
subscripciónconcreta,eliminarlodedichasubscripciónyrealizarpagospendientesde
formaintegraoparcial.
9
Membresía|JulioM.FernándezJiménez
Componentedesubscripciones
Lagestióndesubscripcionespermiterealizartodaslasgestionesrelacionadasconel
manejodesubscripciones.Atravésdeestecomponentesepodráncrear,modificary
eliminardiferentestiposdesubscripcionesasícomodefinirsuperiodicidadyvisualizar
gráficamentelosingresosdevengados.
Estecomponentecuentacomoactorsecundarioelmismosistema,quecreaperiodosde
cobroparalassubscripcionessegúnsehayadefinidosuperiodicidad.Estosperiodosde
cobrosongeneradosdeformaautomáticacadavezqueelperiodoanteriorvence.
Elconceptodetrásdelagestióndemásdeunasubscripciónestámotivadoporla
necesidaddecrearlíneasdecobrosalternativasalaprincipalsegúnseanecesario.Existen
unagrancantidaddecasosenlosquepuedasernecesariotenermásdeunasubscripción
vigenteparaconungrupocomoporelejemplolarecaudacióndefondosparauna
actividadespecial,unviajeounacelebraciónenparticular.
Estambiénatravésdeestecomponentequelossociospodránrealizarpagos,mediante
Paypal,delassubscripcionespendientesdeabonarydeformaparcialoíntegrahaciendo
usodeunaURLencriptadaquerecibiránensucorreoelectrónicoaprincipiodecada
periododerecaudacióndecuotas.Deigualforma,losadministradoresdelsistemapodrán
manualmenteregistrarunpagosinnecesidaddelaURLencriptada.
Componentedecomunicaciones
Elcomponentedegestióndemensajesfacilitaelenvíodenotificacionesomensajesalos
socios.Estasnotificacionespuedenserpersonalizadas,apartirdeunaplantillao
automatizadas.
Enadición,elcomponentetambiénhabilitalacapacidaddecreación,
ediciónyeliminacióndedichasplantillas.
10
Membresía|JulioM.FernándezJiménez
Componentedeestadísticas
Elcomponentedeestadísticasanalizalarecaudacióndelascuotasatravésdeltiempo.
Existenbásicamentedosfuncionesprincipalesdeestecomponente.Laprimeradeellas
muestragráficamente(gráficodebarras)losingresosmensualesporsubscripciónsegúnla
recaudacióndelascuotas.Estegráficopuedetambiénmostrarlosingresosdesdeuna
perspectivaglobal(todaslassubscripciones).
Lasegundafuncionalidaddeestecomponenteeslademostrarunlistadodelossociosha
pagadoalgunacuotarecientementeymostrarlosperiodosporcobrarmasrecientes.
11
Membresía|JulioM.FernándezJiménez
PlanificacióndelTrabajoRealizado
Entodotrabajoplanificadopuedenexistirdiscrepanciasentreelplanestimadoinicialde
trabajoyelresultante.Acontinuacióndemuestranlasdiferenciasentreambas
planificacionesdondepodremoscomparartantoeltiempoinvertidoencadatareacomo
elcostedecadaunadeellas.
Paracalcularloscostes,sehanutilizadotrestarifasdiferentessegúneltipodetarea
realizada.Lasiguientetablaresumebrevementelosrolesdetareasylatarifaporhoraasí
comosucódigodecolorcorrespondiente.
Role
Precio/hora
Gestión/Administración
10€
Diseño
20€
Programación
25€
PlanificaciónInicial
Acontinuaciónsemuestralaagendadetrabajopropuestaparaelproyectodesglosadaen
sub-tareasdecaráctergeneral.Eltiempoestimadoparacadatareasehacalculadoen
baseaunadedicaciónde3horasaldía.
Tarea
Plandetrabajoinicial
Diseñodelsistema
Especificacionesporcomponente
Definicióndediagramasdecasosdeuso
Diagramadeclases
Diagramadecomponentes
Implementación
DiseñoUI(Adaptacion)
Definicióndemodelosyfuncionesde
interacciónconDB
Programacióncontroladores
Programacióndeserviciosybusinesslogic
Testing
Memoriaypresentación
Hito Horas Fechaentrega
PEC1
30
5/10/15
PEC2 4/11/15
PEC2
15
10/10/15
PEC2
12
14/10/15
PEC2
15
19/10/15
PEC2
18
25/10/15
PEC3 18/12/15
PEC2
24
7/11/15
PEC2
30
17/11/15
Coste
300,00€
225,00€
180,00€
225,00€
270,00€
480,00€
600,00€
PEC2
PEC2
PEC2
PEC4 600,00€
900,00€
300,00€
12
30
45
15
27/11/15
12/12/15
17/12/15
11/1/16
Membresía|JulioM.FernándezJiménez
Preparaciónmemoriaescrita
Preparaciónmaterialaudiovisual
PEC4
PEC4
30
30
27/12/15
6/1/16
300,00€
300,00€
4.680,00€
PlanificaciónReal
Paralaplanificaciónrealderealizaronjornadasdecincohorascadaunaydediezlosfines
desemanasyfestivos.Elcuadrodetiemposdeejecuciónypresupuestorealparael
sistemaescomosemuestraacontinuación.Lastareasdeláreadedesarrolloe
implementacióncarecendeunafechadefinalizaciónconcretaalhabersidorealizadasde
formaintercala.
Tarea
Plandetrabajoinicial
Diseñodelsistema
Especificacionesporcomponente
Definicióndediagramasdecasosdeuso
Diagramadeclases
Diagramadecomponentes
Implementación
DiseñoUI(Adaptacion)
Definicióndemodelosyfuncionesde
interacciónconDB
Programacióncontroladores
Programacióndeserviciosybusinesslogic
Testing
Memoriaypresentación
Preparaciónmemoriaescrita
Preparaciónmaterialaudiovisual
Hito Horas Fechaentrega
PEC1
30
5/10/15
PEC2 7/11/15
PEC2
10
20/10/15
PEC2
20
25/10/15
PEC2
10
28/10/15
PEC2
45
7/10/15
PEC3 18/12/15
PEC2
35
PEC2
40
PEC2
PEC2
PEC2
PEC4 PEC4
PEC4
13
45
80
20
30
30
Coste
300,00€
150,00€
300,00€
150,00€
675,00€
700,00€
800,00€
900,00€
1.600,00€
400,00€
11/1/16
7/1/16 300,00€
11/1/16 300,00€
6.575,00€
Membresía|JulioM.FernándezJiménez
Casosdeuso
Acontinuaciónsedescribenlosdiferentescasosdeusosegúnelcomponentealque
pertenecen.
Usuariosadministrativos
CU_1
Actorprincipal
Objetivos
Precondiciones
Postcondiciones
Escenario
principal
Escenario
alternativo
Login
Usuarioadministrador.
Accederalsistemacomousuarioregistrado.
Noestarautenticadoyelusuariodebeestarregistrado
previamente.
Elusuarioquedaautenticadoenelsistemaytieneaccesoalmenúy
lagestióndelsistema.
Elusuarioentrasuemailycontraseña.
Elusuarioesautenticadoyllevadoalpanelprincipaldelsistema
desdeel
quesepuedenaccederatodaslasfuncionalidadesdel
mismo.
1. Elusuariointroduceunemailocontraseñaerrónea.
2. Elsistemaavisaalusuariodequehaintroducidouna
secuenciadedatos
deautenticaciónincorrecta.
CU_2
Actorprincipal
Objetivos
Precondiciones
Postcondiciones
Escenario
principal
Escenario
alternativo
Recoverpassword
Usuarioadministrador.
Restaurarlaclaveocontraseñadeacceso.
Noestarautenticadoyelusuariodebeestarregistrado
previamente.
Elusuarioadquiereunanuevaclavedeaccesoatravésdesucorreo
electrónico.
Desdeelpaneloformularioderecuperacióndecontraseña,el
usuarioentrasuemailypulsaen“recuperarclave”parainiciarel
proceso.
Elusuariorecibeporcorreoelectrónicounanuevaclavegenerada
de
formaautomática.
1. Elemailintroducidoesincorrectoonoperteneceaningún
usuario.
2. Elsistemaavisaelusuarioconunmensajedeerroryleinvita
aproceder
denuevo.
CU_3
Actorprincipal
Objetivos
Logout
Usuarioadministrador.
Salirdelsistemacomousuarioautenticado.
14
Membresía|JulioM.FernándezJiménez
Precondiciones
Postcondiciones
Escenario
principal
CU_4
Actorprincipal
Objetivos
Precondiciones
Postcondiciones
Escenario
principal
Estarautenticadoenelsistema.
Elusuarioesexpulsadodelsistemaydebevolveraautenticarse
parapoderacceder.
1.Elusuariohaceclicsobreelenlacede“salir”o“logout”.
Listusers
Usuarioadministrador.
Mostrarunlistadodetodoslosusuariosregistrados.
Estarautenticadoenelsistema.
Semuestraenpantallatodoslosusuariosadministradoresdel
sistemaactualmenteregistrados.
1. Elusuariohaceclicsobreelenlacedelmenú“Listar
usuarios”.
2. Elsistemamuestraunatablacontodoslosusuarios
administradoresregistrados.
CU_5
Actorprincipal
Objetivos
Precondiciones
Postcondiciones
Escenario
principal
Escenario
alternativo
Adduser
Usuarioadministrador.
Añadirunnuevousuarioalabasededatos
Estarautenticadoenelsistema.
Queelcorreoelectrónicodelnuevousuarionoesteyaregistrado
bajo
algúnotrousuario.
Elusuarioquedaregistradoenelsistema.
Seleenvíaunemailalnuevousuarioconsusdatosdeacceso.
1. Elusuariohaceclicsobreelenlacedelmenú“Nuevo
usuario”osobreelbotónenlaesquinasuperiorderechadel
listadodeusuarios.
2. Elsistemamuestraelformulariodealtaqueelusuariodebe
completarconloscamposmarcadoscomoobligatorios.
3. Elusuariocompletaelformularioypulsaguardar
4. Elusuarioquedaregistradoyseleenvíaunemail
notificándoledela
acciónasícomodesusdatosdeacceso.
5. Seretornaalalistadeusuariosadministrativos.
1. Sepulsaelbotónguardartrasintroduciruncorreo
electrónicoyaregistradoparaotrousuario.
2. Elsistemaretornaalusuarioalformularioylepideque
rectifiqueelerror.
3. Sepulsaelbotónguardartrasnoproveertodala
informaciónsolicitadacomoobligatoria.
4. Elsistemaretornaalusuarioalformularioylepideque
rectifiqueelerror.
15
Membresía|JulioM.FernándezJiménez
CU_6
Actorprincipal
Objetivos
Precondiciones
Postcondiciones
Escenario
principal
Escenario
alternativo
Edituser
Usuarioadministrador.
Modificarlosdatospersonalesdeunusuarioregistrado.
Estarautenticadoenelsistema.
Accederallistadodeusuariosadministrativos.
1.Losdatosdelusuarioquedanmodificados.
1. Elusuariohaceclicsobreeliconode“modificarusuario”
ubicadoenlabarradeherramientasaladerechadelosdatos
delusuarioenlatablaolistadodeusuariosadministrativos.
2. Secargaelformulariodedatosdeusuarioconlosdatosde
éste.
3. Semodificanlosdatosysepulsaelbotóndeguardar.
4. Losdatosquedanguardados.
5. Seretornaalalistadeusuariosadministrativos.
1. Sepulsaelbotónguardartrasmodificarelcorreoelectrónico
porunoyaregistradoparaotrousuario.
2. Elsistemaretornaalusuarioalformularioylepideque
rectifiqueelerror.
3. Sepulsaelbotónguardartrasnoproveertodalainformación
solicitadacomoobligatoria.
4. Elsistemaretornaalusuarioalformularioylepideque
rectifiqueelerror.
CU_7
Actorprincipal
Objetivos
Precondiciones
Postcondiciones
Escenario
principal
Escenario
alternativo
Deleteuser
Usuarioadministrador.
Eliminarunusuariodelsistema.
Estarautenticadoenelsistema.
Accederallistadodeusuariosadministrativos.
Losdatosdelusuarioquedanmodificados.
1. Elusuariohaceclicsobreeliconode“eliminarusuario”
ubicadoenlabarradeherramientasaladerechadelosdatos
delusuarioenlatablaolistadodeusuariosadministrativos.
2. Selepresentaalusuarioconunaalertadeconfirmaciónde
acción.
3. Elusuarioconfirmalaacción.
4. Seeliminaelusuario.
5. Seretornaalalistadeusuariosadministrativos.
1. Elusuarionoconfirmalaaccióndeeliminarelusuario
2. Seretornaalalistadeusuariosadministrativos.
16
Membresía|JulioM.FernándezJiménez
CU_8
Actorprincipal
Objetivos
Precondiciones
Postcondiciones
Escenario
principal
Escenario
alternativo
Modifypersonalprofile
Usuarioadministrador.
Permitemodificarlosdatospersonalesdelusuarioactualmente
autenticado.
1.Estarautenticadoenelsistema.
1.Losdatosdelusuarioquedanmodificados.
1. Elusuariohaceclicsobreelenlace“perfil”ubicadoenla
barradeinformacióndelusuarioenlazonasuperiorderecha
delapantalla.
2. Secargaelformulariodedatosdeusuarioconlosdatosdel
usuarioactual.
3. Semodificanlosdatosysepulsaelbotóndeguardar.
4. Losdatosquedanguardados.
5. Seretornaalalistadeusuariosadministrativos.
1. Sepulsaelbotónguardartrasmodificarelcorreoelectrónico
porunoyaregistradoparaotrousuario.
2. Elsistemaretornaalusuarioalformularioylepideque
rectifiqueelerror.
3. Sepulsaelbotónguardartrasnoproveertodala
informaciónsolicitadacomoobligatoria.
4. Elsistemaretornaalusuarioalformularioylepideque
rectifiqueelerror.
17
Membresía|JulioM.FernándezJiménez
Gestióndesocios
CU_9
Actorprincipal
Objetivos
Precondiciones
Postcondiciones
Escenario
principal
Listmembers
Usuarioadministrador.
Mostrarunlistadodetodoslosusuariossociosomiembros.
Estarautenticadoenelsistema.
Semuestraenpantallatodoslosusuariossociosdelsistema
actualmenteregistrados.
1. Elusuariohaceclicsobreelenlacedelmenú“Listarsocios”.
2. Elsistemamuestraunatablacontodoslosusuariossocios
registrados.
CU_10
Actorprincipal
Objetivos
Precondiciones
Postcondiciones
Addmember
Usuarioadministrador.
Añadirunnuevosocioalabasededatos
Estarautenticadoenelsistema.
Queelcorreoelectrónicodelnuevosocionoestéyaregistradobajo
algún
otrousuariosocioousuarioadministrador.
1. Elsocioquedaregistradoenelsistema.
18
Membresía|JulioM.FernándezJiménez
2. Elusuariohaceclicsobreelenlacedelmenú“Nuevosocio”o
sobreelbotónenlaesquinasuperiorderechadellistadode
socios.
3. Elsistemamuestraelformulariodealtaqueelusuariodebe
completarconloscamposmarcadoscomoobligatorios.
4. Elusuariocompletaelformularioypulsaguardar.
5. Elsocioquedaregistrado.
6. Seleenvíaalnuevomiembrounemaildebienvenida.
7. Seretornaalalistadesocios.
Escenario
principal
Escenario
alternativo
Extensiones
CU_11
Actorprincipal
Objetivos
Precondiciones
Postcondiciones
Escenario
principal
Escenario
alternativo
1. Sepulsaelbotónguardartrasintroduciruncorreo
electrónicoyaregistradoparaotrosocioousuario
administrador.
2. Elsistemaretornaalusuarioalformularioylepideque
rectifiqueelerror.
3. Sepulsaelbotónguardartrasnoproveertodala
informaciónsolicitadacomoobligatoria.
4. Elsistemaretornaalusuarioalformularioylepideque
rectifiqueelerror.
CU_15,CU_16
Editmember
Usuarioadministrador.
Modificarlosdatospersonalesdeunusuariosocio.
Estarautenticadoenelsistema.
Accederallistadodesocios.
1.Losdatosdelusuarioquedanmodificados.
1. Elusuariohaceclicsobreeliconode“modificarsocio”
ubicadoenlabarradeherramientasaladerechadelosdatos
delusuarioenlatablaolistadodeusuariossocios.
2. Secargaelformulariodedatosdesociosconlosdatosde
éste.
3. Semodificanlosdatosysepulsaelbotóndeguardar.
4. Losdatosquedanguardados.
5. Seretornaalalistadeusuariossocios.
1. Sepulsaelbotónguardartrasmodificarelcorreoelectrónico
porunoyaregistradoparaotrousuario.
2. Elsistemaretornaalusuarioalformularioylepideque
rectifiqueelerror.
3. Sepulsaelbotónguardartrasnoproveertodalainformación
solicitadacomoobligatoria.
19
Membresía|JulioM.FernándezJiménez
Extensiones
CU_12
Actorprincipal
Objetivos
Precondiciones
Postcondiciones
Escenario
principal
Escenario
alternativo
4. Elsistemaretornaalusuarioalformularioylepideque
rectifiqueelerror.
CU_15,CU_16
Deletemember
Usuarioadministrador.
Eliminarunsociodelsistema.
Estarautenticadoenelsistema.
Accederallistadodeusuariosadministrativos.
1.Elsocioquedaeliminado
1. Elusuariohaceclicsobreeliconode“eliminarsocio”ubicado
enlabarradeherramientasaladerechadelosdatosdel
usuarioenlatablaolistadodesocio.
2. Selepresentaalusuarioconunaalertadeconfirmaciónde
acción.
3. Elusuarioconfirmalaacción.
4. Seeliminaelsocio.
5. Seretornaalalistadeusuariossocio.
1. Elusuarionoconfirmalaaccióndeeliminarelsocio
2. Seretornaalalistadeusuariossocio.
1. Elsociotienepagosasociados
2. Seeliminalainformaciónpersonaldelsocioperose
mantienelaentradaenlabasededatosconelfinde
conservarlainformacióndelospagos.
3. Seretornaallistadodesocios.
CU_13
Actorprincipal
Objetivos
Showmember
Usuarioadministrador.
Verlafichadeunsocio
Estarautenticadoenelsistema.
Precondiciones
Accederallistadodeusuariosadministrativos.
Postcondiciones 1.Lainformacióndelusuariosemuestraenpantalla
1. Elusuariohaceclicsobreeliconode“versocio”ubicadoenla
barradeherramientasaladerechadelosdatosdelusuarioenla
tablaolistadodesocio.
Escenario
principal
2. Selepresentaalusuarioconlafichadelsocio,desdedonde
podráverlosdetallesdecontactodelsocio,sussubscripciones
activasysuhistorialdepagoporsubscripción.
Extensiones
CU_17
20
Membresía|JulioM.FernándezJiménez
CU_14a
Actorprincipal
Objetivos
Precondiciones
Postcondiciones
Escenario
principal
Escenario
alternativo
Extensiones
RegisterPayment
Usuarioadministrador.
Registrarelpagodeunsocioaunasubscripciónconcreta
Estarautenticadoenelsistema.
Accederallistadodeusuariossocios.
1.Elpagodelsocioquedaregistradoparaunperiodoconcretodela
subscripciónseleccionada.
1. Elusuariohaceclicsobreeliconode“registrarpago”ubicadoen
labarradeherramientasaladerechadelosdatosdelusuarioen
latablaolistadodesocio.
2. Selepresentaalusuarioconunlistadodelassubscripcionesa
lascualeselsocioestainscrito.
3. Elusuarioseleccionalasubscripciónalaquedeseaaplicarel
pago.
4. Elsistemamuestraaquellosperiodosdelasubscripciónactuales
o
pasadosparalosqueelsociotieneunbalancependiente.
5. Elusuariointroducelacantidadquedeseaabonar
6. Elsistemaregistraelpago.
7. Seretornaalusuarioallistadodesocios.
1. Elusuariotienetodoslospagosaldía.
2. Elsistemanopermiteregistraningunapago
3. Retornaallistadodesocios
1. Lacantidadintroducidaessuperioralbalanceactualparael
periododecobroencurso
2. Elsistemacancelaelpagoyretornaalformulariodepago.
CU_17
CU_14b
Actorprincipal
Objetivos
Precondiciones
RegisterPayment
Usuariosocio
Registrarelpagodeunsocioaunasubscripciónconcreta
1.SerposeedordelaURLencriptadapararealizarpagos
1.Elpagodelsocioquedaregistradoparaunperiodoconcretode
Postcondiciones
lasubscripciónseleccionada.
1. Elsociohaceclicsobreelenlacedepagoenviadopreviamente
poremail
2. Elusuarioesdirigidoaunformulariodepago
3. Elusuariodefinelacantidadaabonardeltotalpendiente
Escenarioprincipal
4. ElusuarioesdirigidoaPaypalparacompletarsupago
5. Elpagoserealizaconéxito
6. Seretornaalportalinicial
7. Seconfirmaelpago
21
Membresía|JulioM.FernándezJiménez
Escenario
alternativo
1.
2.
3.
4.
Lapasareladepagonopuedecompletarelpago
Elpagonoseregistra
Seretornaalportal
Seinformadelerrordepagoalsocio
CU_15
Actorprincipal
Objetivos
Precondiciones
Postcondiciones
Escenario
principal
Assignmembertosubscription
Usuarioadministrador.
Registraaunusuarioenunasubscripciónconcreta
Estarautenticadoenelsistema.
Accederallistadodeusuariossocios.
Elusuariosocioquedaregistradoenunasubscripción.
Quedapendienteelbalancedelperiododecobroencurso.
1. Elusuariohaceclicsobreeliconode“editarsocio”desdeel
listadodesocios.
2. Enlaseccióndesubscripciones,elusuarioseleccionala
subscripciónalacualdeseasubscribiralsocio
3. Unemailesenviadoalsocioconlainformacióndelanueva
subscripción.
CU_16
Actorprincipal
Objetivos
Precondiciones
Postcondiciones
Escenario
principal
Removememberfromsubscription
Usuarioadministrador.
Eliminaaunusuarioenunasubscripciónconcreta
Estarautenticadoenelsistema.
Accederallistadodeusuariossocios.
Elusuariosocioquedaremovidodelasubscripción
Quedacanceladoelbalancependientedelperiodoencurso.
1. Elusuariohaceclicksobreeliconode“editarsocio”desdeel
listadodesocios.
2. Enlaseccióndesubscripciones,elusuariodeseleccionala
subscripciónalacualsedeseadejardesersubscriptor.
CU_17
Actorprincipal
Objetivos
Checkpaymenthistory
Usuarioadministrador.
Muestraelhistorialdepagodelusuario
Estarautenticadoenelsistema.
Precondiciones
Accederallistadodeusuariossocios.
1.Muestraunlistadodetodoslospagosrealizadosporelsocioen
Postcondiciones ordencronológicoasícomolasubscripciónyelperiodoalque
corresponde
Escenario
1. Elusuarioaccedealafichadedetallesdelsocios.
principal
22
Membresía|JulioM.FernándezJiménez
2. Alfinaldelafichadesociopuedevisualizarseelhistorialdepago
delsocio.
Gestióndesubscripciones
CU_18
Actorprincipal
Objetivos
Precondiciones
Postcondiciones
Escenario
principal
Listsubscriptions
Usuarioadministrador.
Mostrarunlistadodetodaslassubscripcionesactivas
Estarautenticadoenelsistema.
Semuestraenpantallatodaslassubscripcionesactualmente
existentes.
1. Elusuariohaceclicsobreelenlacedelmenú“Listar
subscripciones”.
2. Elsistemamuestraunatablacontodaslassubscripciones
registradas.
CU_19
Actorprincipal
Objetivos
Precondiciones
Postcondiciones
Addsubscription
Usuarioadministrador.
Añadirunanuevasubscripciónalsistema
1.Estarautenticadoenelsistema.
1.Lasubscripciónquedaregistradaenelsistema
23
Membresía|JulioM.FernándezJiménez
Escenario
principal
Extensiones
Escenario
alternativo
1. Elusuariohaceclicsobreelenlacedelmenú“Nueva
subscripción”osobreelbotónenlaesquinasuperiorderecha
dellistadodesubscripciones.
2. Elsistemamuestraelformulariodealtaqueelusuariodebe
completarconloscamposmarcadoscomoobligatorios.
3. Elusuariocompletaelformularioypulsaguardar.
4. Lasubscripciónquedaregistrada.
5. Secreaelprimerperiododecobroparalanuevasubscripción.
6. Seretornaalalistadesubscripciones.
CU_25
1. Sepulsaelbotónguardartrasnoproveertodalainformación
solicitadacomoobligatoria.
2. Elsistemaretornaalusuarioalformularioylepideque
rectifiqueelerror.
CU_20Editsubscription
Actorprincipal Usuarioadministrador.
Objetivos
Modificarlosdatosdeunasubscripciónexistente.
Estarautenticadoenelsistema.
Precondiciones
Accederallistadodesubscripciones.
Postcondiciones 1.Losdatosdelasubscripciónquedanmodificados.
1. Elusuariohaceclicsobreeliconode“modificarsubscripción”
ubicadoenlabarradeherramientasaladerechadelosdatos
delasubscripciónenlatablaolistadodesubscripciones.
2. Secargaelformulariodedatosdesubscripcionesconlos
Escenario
datosdeésta.
principal
3. Semodificanlosdatosysepulsaelbotóndeguardar.
4. Losdatosquedanguardados.
5. Seretornaalalistadesubscripciones.
CU_21
Actorprincipal
Objetivos
Removesubscription
Usuarioadministrador.
Eliminarunasubscripcióndelsistema.
Estarautenticadoenelsistema.
Precondiciones
Accederallistadodeusuariossubscripciones.
Postcondiciones 1.Lasubscripcióneseliminada
1. Elusuariohaceclicsobreeliconode“eliminarsubscripción”
ubicadoenlabarradeherramientasaladerechadelosdatos
Escenario
delasubscripciónenlatablaolistadodesubscripciones.
principal
2. Selepresentaalusuarioconunaalertadeconfirmaciónde
acción.
24
Membresía|JulioM.FernándezJiménez
3. Elusuarioconfirmalaacción.
4. Seeliminalasubscripción.
5. Seretornaalalistadesubscripciones.
CU_22
Actorprincipal
Objetivos
Showsubscription
Usuarioadministrador.
Verlafichadeunasubscripción
Estarautenticadoenelsistema.
Precondiciones
Accederallistadodesubscripciones.
Postcondiciones 1.Lainformacióndelasubscripciónsemuestraenpantalla
1. Elusuariohaceclicsobreeliconode“versubscripción”
ubicadoenlabarradeherramientasaladerechadelosdatos
delasubscripciónenlatablaolistadodesubscripciones.
Escenario
principal
2. Selepresentaalusuarioconlafichadelasubscripción,desde
dondepodráverlosdetallesdelamisma,losingresospor
mes.
Extensiones
CU_23,CU_24
CU_23
Actorprincipal
Objetivos
Precondiciones
Postcondiciones
Escenario
principal
CU_24
Actorprincipal
Objetivos
Precondiciones
Postcondiciones
Escenarioprincipal
Escenario
alternativo
Showincomechart
Usuarioadministrador.
Verlosingresosdeunasubscripciónpormes
Estarautenticadoenelsistema.
Accederaldetalledeunasubscripción
Ungráficodebarrasmuestralosingresosdevengadosdelosúltimos
12meses.
1. Elusuarioaccedealafichadedetalledelasubscripción.
2. Accedealagráfica
Showcurrentpayments
Usuarioadministrador.
Verpagosrealizadosdeunasubscripción
Estarautenticadoenelsistema.
Accederaldetalledeunasubscripción
Semuestraunlistadodeperiodosdepagosylospagos
registrados.
1. Elusuarioaccedealafichadedetalledelasubscripción.
2. Accedeallistado
1. Usuarioadministrador.
25
Membresía|JulioM.FernándezJiménez
CU_25
Actorprincipal
Objetivos
Precondiciones
Postcondiciones
Escenario
principal
Escenario
alternativo
Createinstallment
Sistema
Crearunperiododecobroparaunasubscripción.
Estarautenticadoenelsistema.
Habercreadounanuevasubscripciónohabercaducadoelperiodo
anterior
decobro.
1.Unnuevoperiododecobrosehacreadoynotificadoalossocios
inscritos.
1.Secreaunanuevasubscripción
2.Elsistemageneraunnuevoperiodo
2. Elcronjobcorre.
3. Sedetectanaquellassubscripcionescuyociclode
periodicidad/recursividad
estéporcumplirse.
4. Segeneraunnuevoperiodo.
5. Senotificanalossociosinscritoenlasubscripcióndeque
hayunnuevo
periodoporcobrar.
26
Membresía|JulioM.FernándezJiménez
Gestióndemensajeríaycomunicación
CU_28
Actorprincipal
Objetivos
Precondiciones
Postcondiciones
Escenario
principal
Escenario
alternativo
Createnotificationtemplate
Usuarioadministrador.
Crearunnuevaplantillademensajes
1.Estarautenticadoenelsistema.
1.Lanuevaplantillaquedaregistradaenlabasededatos
1. Elusuariohaceclicsobreelenlacedelmenú“Nueva
plantilla”osobreelbotónenlaesquinasuperiorderechadel
listadodeplantillas.
2. Elsistemamuestraelformulariodecreacióndeplantillas
queelusuariodebecompletarconloscamposmarcados
comoobligatorios.
3. Elusuariocompletaelformularioypulsaguardar.
4. Laplantillaquedaregistrada..
5. Seretornaalalistadeplantillas.
1. Sepulsaelbotónguardartrasnoproveertodala
informaciónsolicitadacomoobligatoria.
2. Elsistemaretornaalusuarioalformularioylepideque
rectifiqueelerror.
CU_29
Actorprincipal
Objetivos
Precondiciones
Postcondiciones
Escenario
principal
Escenario
alternativo
Editnotificationtemplate
Usuarioadministrador.
Modificarlosdatosdeunaplantilla
Estarautenticadoenelsistema.
Accederallistadodeplantillas.
1.Losdatosdelaplantillasquedanmodificados.
1. Elusuariohaceclicsobreeliconode“modificarplantillas”
ubicadoenlabarradeherramientasaladerechadelosdatos
delaplantillasenlatablaolistadodeplantillas.
2. Secargaelformulariodeplantillasconlosdatosdeésta.
3. Semodificanlosdatosysepulsaelbotóndeguardar.
4. Losdatosquedanguardados.
5. Seretornaalalistadeplantillas.
1. Sepulsaelbotónguardartrasnoproveertodalainformación
solicitadacomoobligatoria.
2. Elsistemaretornaalusuarioalformularioylepideque
rectifiqueelerror.
CU_30
Listnotificationtemplate
27
Membresía|JulioM.FernándezJiménez
Actorprincipal
Objetivos
Precondiciones
Postcondiciones
Escenario
principal
Usuarioadministrador.
Mostrarunlistadodetodaslasplantillasdemensajes
Estarautenticadoenelsistema.
Semuestraenpantallatodaslasplantillasdecomunicacionesdel
sistemaactualmenteregistradas.
1. Elusuariohaceclicsobreelenlacedelmenú“Listar
plantillas”.
2. Elsistemamuestraunatablacontodaslasplantillas
registradas.
CU_31
Actorprincipal
Objetivos
Precondiciones
Postcondiciones
Escenario
principal
Escenario
alternativo
Deletenotificationtemplate
Usuarioadministrador.
Eliminarunaplantilladecomunicaciones.
Estarautenticadoenelsistema.
Accederallistadodeplantillas.
Lasplantillaquedaeliminada
1. Elusuariohaceclicsobreeliconode“eliminarplantilla”
ubicadoenlabarradeherramientasaladerechadelosdatos
delusuarioenlatabladellistadodeplantillas.
2. Selepresentaalusuarioconunaalertadeconfirmaciónde
acción.
3. Elusuarioconfirmalaacción.
4. Seeliminalaplantilla.
5. Seretornaalalistadeplantilla.
Elusuarionoconfirmalaaccióndeeliminarlaplantilla.
Seretornaalalistadeplantilla.
CU_32
Actorprincipal
Objetivos
Sendmailfromtemplate
Usuarioadministrador.
Enviarunemailusandounaplantillademensajes
Estarautenticadoenelsistema.
Precondiciones
Accederallistadodeplantillasdemensajes
Postcondiciones
1.Elmensajequedaenviadoconlaplantillademensaje
1. Elusuarioaccedeallistadodeplantillas
Escenarioprincipal
2. Elusuariohaceclicenelbotóndeenviarcorreo
Extensiones
CU_33
CU_33
Actorprincipal
Objetivos
Precondiciones
Sendnotification
Usuarioadministrador.
Enviarunmensajeaunoomassocios
1.Estarautenticadoenelsistema.
28
Membresía|JulioM.FernándezJiménez
Postcondiciones 1.Seenvíaunmensajeaunoomasmiembros
1. Elusuariohaceclicsobreelenlacede“Enviarcomunicado”
ubicadoenelmenúdelaizquierdadelinterface.
2. Sedespliegaelformulariodecreacióndenotificaciones.
3. Elusuariocompletaelformulario
Escenario
4. Elusuarioseleccionalosoeldestinatario
principal
5. Elusuariohaceclicenelbotóndeenviar
6. Elcorreoseenvía
7. Seretornaalapaginapreviadesdedondeseaccedióal
formulariode
envíodemensajes.
Estadísticas
CU_34
Actorprincipal
Objetivos
Precondiciones
Postcondiciones
Showpaymentbyperiods
Usuarioadministrador.
Mostrarungráficodeingresospormes
1.Estarautenticadoenelsistema.
1.Semuestraellistadodeperiodos
1. Elusuarioaccedealdashboarddesdeelmenúprincipal
Escenarioprincipal
2. Elgráficodeimgresosapareceenpantalla
29
Membresía|JulioM.FernándezJiménez
CU_34
Actorprincipal
Objetivos
Precondiciones
Postcondiciones
Showlatestpayments
Usuarioadministrador.
Mostrarunlistadodelosúltimospagosrealizados
1.Estarautenticadoenelsistema.
1.Semuestraellistadodeperiodos
1. Elusuarioaccedealdashboarddesdeelmenúprincipal
Escenarioprincipal
2. Ellistadodepagosactivosapareceenpantalla
CU_36
Actorprincipal
Objetivos
Precondiciones
Postcondiciones
Showlatestinstallments
Usuarioadministrador.
Mostrarunlistadodeperiodosdepago
1.Estarautenticadoenelsistema.
1.Semuestraellistadodeperiodos
1. Elusuarioaccedealdashboarddesdeelmenúprincipal
Escenarioprincipal
2. Ellistadodeperiodosactivosaparaceenpantalla
30
Membresía|JulioM.FernándezJiménez
DiagramadeClases
LaclaseUserrepresentalaentidadusuariodelaqueheredanlasclasesUserAdminy
UserMember.Laideaderelacionarambasentidadesmedianteunaherenciaeslapoder,
enunfuturo,escalarelsistemapermitiendoquelossociospuedanaccederala
plataformaparahacerusodeserviciosyprestacionesextras.
ElsistemacentraldeldiagramaestácompuestoporlaclaseSubscription,losperiodosde
pagosoInstallment,lascuotasdemiembrosoMemberInstallmentsylospagoso
Payment.LaclaseMemberInstallmentesunaclasedetipoasociativaquecontiene
informacióndelascuotasdecadausuarioporsubscripciónyperiododepago.Los
usuariossociospodránrealizarpagosmúltiples,ounsólopago,aunperiodoconcreto
hastaqueéstequedecubierto.Enestediagramatambiénpuedeapreciarsequeunsocio
puedeestarsubscritoamásdeunasubscripción.
Porultimotenemoselsistemademensajería.Estesistemaestárepresentadoporlaclase
asociativaMessagequecomprendeelmensajeaenviar.Estaclasenonecesita
persistenciadedatosyaqueelsistemanoalmacenalosmensajesenviados;siembargo,si
esposibleenunfuturoescalarelsistemaanivelesdondelagestiónyelenvíode
mensajesseamáscompletaygestionable.LaclaseMessageTemplatecontienetextos
predeterminadosutilizadoscomoplantillasparalageneracióndelosmensajes.
31
Membresía|JulioM.FernándezJiménez
32
Membresía|JulioM.FernándezJiménez
DiagramadeComponentes
Acontinuacióndedefinenlosdiagramasdecomponentesbasadosenladescripciónde
componentesdescritaenladescripcióngeneraldelsistema.Losdiagramassiguenel
patróndediseñoestructuralModelo-Vista-ControladorparaaplicacionesJavaEE.
Losdiagramaspresentadosmuestranelsistemaendiferentesnivelesdegranuralidad,
comenzandoporunavistaglobaldondepuedeapreciarselaintegracióndelastrescapas
delmodeloMVCínteractuandoentresíatravésdesuscomponentes.
Conlafinalidaddeencapsularydelegarlaresponsabilidaddelasaccionesenservicioso
clasesconcretas,cadacomponentepuedecontenerunoomasinterfacesdeaccesosegún
lanaturalezadelasfuncionesquecontenidas.
33
Membresía|JulioM.FernándezJiménez
Diagramageneraldecomponentes
34
Membresía|JulioM.FernándezJiménez
Diagramadecomponentesusuarios
Capadepresentación
35
Membresía|JulioM.FernándezJiménez
Capadenegocios
Capadeintegración
36
Membresía|JulioM.FernándezJiménez
Diagramadecomponentessubscripción
Capadepresentación
37
Membresía|JulioM.FernándezJiménez
Capadenegocios
38
Membresía|JulioM.FernándezJiménez
Capadeintegración
39
Membresía|JulioM.FernándezJiménez
Diagramadecomponentescomunicación
Capadepresentación
40
Membresía|JulioM.FernándezJiménez
Capadenegocios
41
Membresía|JulioM.FernándezJiménez
Capadeintegración
42
Membresía|JulioM.FernándezJiménez
Diagramadecomponentesestadísticas
Capadepresentación
43
Membresía|JulioM.FernándezJiménez
Capadenegocios
Capadeintegración
44
Membresía|JulioM.FernándezJiménez
LainterfazdeUsuario
LainterfazdeusuarioestáimplementadahaciendousodelaplantillaAdminLTEControl
PanelTemplatebasadaenelframeworkCSSBootstrapparaproveeralsistemade
adaptabilidadycapacidadderespuestaantedispositivosmóviles.
Lainterfazestacompuestaporlassiguientesvistassegúnelcomponente:
1. Usuarios
a. Listadodeusuariosadministrativos
b. Listadodeusuariosmiembros
c. Formulariodeusuariosadministrativos
d. Formulariodeusuariosmiembros
e. Detalledeusuariomiembro
2. Subscripciones
a. Listadodesubscripciones
b. Formulariodesubscripciones
c. Formulariodepago
d. Formulariodepagoporenlace
e. Detalledesubscripción
3. Comunicación
a. Listadodeplantillasdemensajes
b. Formulariodeplantillademensaje
c. Formulariodeenvíodemensajes
d. Plantilladecorreo
Acontinuaciónsedescribiráneilustraránalgunosdeloselementosdelainterfacede
usuariomasrelevantes.
45
Membresía|JulioM.FernándezJiménez
Plantillageneraldelainterfazdeusuario
Todaslasvistasinternas,oquerequierendeautenticaciónparaaccederaellas,están
montadassobrelamismaplantillaodiseño.Estaplantillasedivideendosáreas
principales.Enlaizquierdaseubicanloselementoscomunestalescomolasseñasde
identidaddelsistema,elmenúdenavegaciónyelresumendelperfildeusuario.Enla
zonaderecha(oáreadetrabajo)seencuentranloselementosespecíficosparacadavista;
estoselementos,porlogeneral,puedenserlistados,formulariouhojasdedetalles.
Lasvistasexternasnotienenelementoscomunesdeplantillasytodalaplantillaesáreade
trabajo.
PortalPrincipal
Unavezdentrodelsistema,elusuariopuedeaccederalportalprincipaldelaaplicación.
Esteportalestacompuestopordoszonasprincipales.Laprimeradeellaseselpanelde
control,queescomúnentodaslasseccionesdelaaplicación,yestáubicadoala
izquierdaypartesuperiordelainterfacedeusuario.
Enlaseccióndelpaneldecontroldelaizquierdapodemoslocalizar,comenzadopor
arriba,lainformacióndelusuarioactualmenteidentificadoenelsistema.Aquípodemos
versinombreysufotoGravatar(enelcasodequetuviese).Actoyseguidostenemosel
buscadordecontenidosyporultimoelmenúdenavegación.
Elmenúestaorganizadoporcomponentesyesdeltipodesplegable.Cadaelementodel
menúdenavegacióncontieneenlacesalosprincipalespuntosdeentradadecada
componente.
Enlabarrasuperiorderechatenemoselaccesoalperfildeusuario.Desdeaquíelusuario
puedemodificarsuperfilosalirdelsistema.
46
Membresía|JulioM.FernándezJiménez
Porultimo,cabemencionarqueelmenúdenavegación,asícomoelpaneldecontrolque
locontiene,puedecontraerseparamaximizareláreadetrabajo.Estafuncionalidadesun
indicativodelacapacidaddeadaptacióndelsistemaadispositivosmóvilesdecualquier
tipo,tamañoyresolución.
Enaláreacentralodetrabajo,tambiéndenominadaDASHBOARD,tenemosunaserie
cajasquecontieneninformaciónanalíticadelsistemaydesuestadoactual.Laprimerade
ellasesunlistadodelosdiezúltimospagosregistrados.Cadaentradaestáilustradaporel
socioqueharealizadoelpago,lasubscripciónylacantidadabonada.Tantoelnombredel
sociocomoeldelasubscripciónproveenunenlacequepermitenaccederalahojade
detallesdecadaunodeellos.
Lasiguientecajaesungráficodebarrasqueilustralacantidadglobalrecaudadapormes
durantelosúltimosdocemeses.Sipasamoselratónporencima,podemosaccederala
informacióndetalladadelmesencuestión.
Yporultimolosperiodosdecobroactivosactualmente.Cadaentradaestaacompañada
deunabarradeprogreso,yunporcentaje,quemuestraeltotalrecaudadoparadicho
periododecobrodeltotalesperado.Estainformaciónessumamenteútilsiqueremos
indagarenelprogresodeunpagoenconcreto.
47
Membresía|JulioM.FernándezJiménez
Vistasdelistados
Laslistassonelpuntodepartidaparacomenzaraoperarencualquieradelos
componentes.Eláreadetrabajodeunalistaestacompuestaporelbuscadorenlaparte
superior,quepuedevariarsegúnlanaturalezadeloscontenidos;yellistado,ubicado
debajodelbuscador.Ellistadoasuvezsedivideendoszonas,quesonlainformacióndel
elementolistadoylabarradeherramientasdestinadaarealizaraccionessobreel
elementoalqueestarelacionada.
Labarradeherramientastienedoselementoscomunesatodosloslistados:editary
eliminaelemento.Elcomponentedesocios,sinembargo,tieneasociadadosacciones
adicionalesasubarradeherramientasyquesondegranrelevanciaparaeste
componente:realizarpagoyenviarmensaje.
Otroelementoimportantedelavistadelistadosesenelbotóndecrearunnuevo
elemento.Estaacciónestátambiénaccesibledesdedelpaneldenavegacióndela
derecha.Esteelementopermiteaccederalformulariocorrespondientealcomponentedel
listadoenmodocreación.
48
Membresía|JulioM.FernándezJiménez
Vistasdeformulario
Aligualqueloslistados,losformulariostambiénhacenusodelaplantillageneralde
contenidos,aunquesucomposiciónesmásvariadaydependedelanaturalezadel
componente.Losformulariospuedenservirtantoparacrearelementosnuevoscomopara
modificarlos.Noexisteunavistadeformulariodiferenteparacadaacción,unamisma
vistasirveparaambospropósitosyeslaacciónquiendefinesufunción.
FormulariodeSocios
Elformulariodesociosestácompuestospordosseccionesclaramentediferenciadaspor
sufuncionalidadentérminosdeltipodeinformaciónquegestiona.Laprimeradeellases
elformularioquerecogelosdatospersonalesydecontactodelsociotalescomonombre
ydirecciónonúmerodeteléfono.Lasegundagestionalassubscripcionesalasqueel
usuarioestainscrito.
Elselectordesubscripcionesesuncontroldeselecciónmúltipledesdedondese
seleccionanlassubscripcionesalasqueelsociodeberádeabonarlacuotaindicada.
49
Membresía|JulioM.FernándezJiménez
Formulariodesubscripción
Elmodulodesubscripcionesessindudaalgunadelcorazóndelaaplicación.Eseste
moduloelquecrealasdependenciasnecesariasquerepresentanlosperiodosdepago,los
cobrosalossociossubscriptoresylospagos.
Laentidadsubscripciónesdecarácterrecurrente,esdecir,quesuciclodevidacíclico.La
subscripcióntieneperiodicidad,cadavezqueunperiodosevencesecreaunonuevoyse
informaalossubscriptoresdequeexisteunnuevopagoporrealizar.
Elformulariodesubscripcionesrecolectalosdatosnecesariosparageneraruna
subscripción.Losdatosrequeridossonelnombreotitulo,lacantidadaabonarencada
periododepagoylaperiodicidad.Estaúltimaesdesumaimportanciayaquedefinirá
cuandodebencrearselosperiodosdepagosyavisaralossociosconunnuevoemail.
50
Membresía|JulioM.FernándezJiménez
Tambiénesnecesarioindicarcuandosevenceelpróximopago.Estafechasetomacomo
referenciaparacrearlospagosyavisosfuturos.
Formularioderegistrodepago
Elformulariodepagospermiterealizarunpagoparcialocompetosobrelacuotadeuna
subscripciónconcreta.Pararegistrarunpagodeformamanualesnecesarioindicarla
subscripciónyelperiodoalcualsedeseaaplicarlacuotaeintroducireltotaldelimportea
pagar.
Parafacilitarelproceso,esteformularioestáprovistoconunresumendelosúltimos
pagosrealizadosporelsocio.
51
Membresía|JulioM.FernándezJiménez
Formularioderegistrodepagoporcorreo
Elformulariodepagoatravésdeemail,esidénticoaldelpagomanualsóloquenoes
posibleseleccionarlasubscripciónyelperiodo,yaqueéstosvienedefinidosenlaURL
encriptada.
Altratarsedeunavistapublica(norequiereautenticaciónexplicitaporpartedelusuario),
esteformulariocarecedeplantillaconelementosnavegables.
52
Membresía|JulioM.FernándezJiménez
Formulariodeplantillademensajes
Formulariodemensajes
Lafuncióndelformulariodemensajesesladeproveerlasherramientasparacomponer
unmensajedecorreoelectrónico.Esteformulariopermitecomenzarlacomposición
desdeunformularioenblancoohaciendousodeunaplantilla.Parautilizarunaplantilla
sóloesnecesarioseleccionarladesdeelmenúdesplegable.
Paraqueelenvíoseaexitoso,esnecesarioqueseseleccioneunoomasusuariossocios
comodestinatariosdelmensaje.Estaacciónpuederealizarsedesdeelpanelinferiordel
formulario.
53
Membresía|JulioM.FernándezJiménez
54
Membresía|JulioM.FernándezJiménez
Implementación
Laimplementacióndelsistemaserealizóhaciendousodelframeworkdedesarrollo
JavaEEPlay2.Apesardeserunframeworkmuypopular,losinconvenientesnotardaron
enaparecerdurantelasprimerasfasesdeldesarrollo.Losfactoresmascríticosque
surgieronduranteestaetapainicialdeldesarrollofueroncomoseindicanacontinuación:
1. Sistemainestable:Playesunframeworkrelativamentenuevo(año2012
proximadamente)queactualmenteseencuentraensuversión2.4.Este
frameworkhapasadopordiversasetapadedesarrolloadaptándosealas
necesidadesdelosusuariosysusdemandas,loquehacausadoquelasdistintas
versionesexistentesseanmuydisparejaslasunasdeunadelasotras.Esta
diferenciaenlaoperatividaddelframeworkestanmarcadaqueeninternetyase
habladePlay1yPlay2comosidedosdiferentesframeworkssetratasen.Existe
tantadisparidadenlasversiones,queinclusopuedenpercibirsediferencias
marcadasentrelasdistintasversióndePlay2.
2. Faltadedocumentación:Altratarsedeunsistemavivoyencontinuodesarrollo,
existepoca,ningunaoinformacióncontradictoriaeninternetreferenteal
desarrolloenestaplataforma.Ladocumentaciónoficialesescuetaypococlara,
porloquelaúnicafuentedeinformaciónfiabledisponiblesesaquellaextraída
desdeforostalescomoStackOverflowoGoogleForums.
3. PocosoporteIDE:ExistemuypocosIDEconcapacidadparadesarrollarenPlay2,y
aquellosqueyalohacecarecendeunsoporte100%fiable.
4. Lenguajedeprogramación:AunquePlaysoportaelusodeScalay/oJavacomo
lenguajedeprogramación,elusodeambosdeformasimultáneanoes
recomendado.AdiferenciadeGroovyandGrails,Playnooperabiencuandose
intercalanamboslenguajesesunmismoproyecto.Elproblemareside
principalmenteenqueexistendospaquetesdiferentesdelibreríassegúnsehaga
usodeScalaoJava,ycadaunadeellosconlasmismasclasesperoadaptadasal
lenguajeconcreto.Esteambigüedadprovocaproblemasdeinterpretaciónenel
55
Membresía|JulioM.FernándezJiménez
IDEydecompilación.AunqueseseleccionóJavapurocomolenguajede
programaciónprincipal,lasvistasestántodasprogramadasenScala.Esta
implementacióndualfueposibledadoquelaslibreríasrelacionadasconlasvistas
nocreabanconflictoalgunoconaquellasdelalógicadenegocio.
Apasardelosinconvenientesyamencionados,Playresultoserunframeworkmuyfácilde
trabajaryaltamentefiableunavezcontroladoslosfactoresderiesgo.Algunasdelas
funcionalidadesquePlayofreceson:
1. Sistemadegestióndeaplicaciones:Laversiónutilizada,Play2.4,incluyeun
sistemadenominadoActivatorquepermitelainicializacióndeplantillasde
proyectos,segúnsealenguajedeprogramaciónseleccionadoytipodeproyecto.
Activatortambiénhacelasvecesdeservidorocontenedordeaplicaciones,que
permiterealizareldesarrolloenunambientedetrabajoespecialmentediseñado
paraPlayeindependientedelaconfiguracióndesistemastalescomoTomcato
JBoss(WildFly).Activatortambiénseencargadelacompilaciónymantenimiento
delcódigo.
2. Soportedelibreríasexternas:Apesardesucortaedad,Playtieneungransoporte
delibreríasexternasmedianteMaveny/oTypesafe.Estossistemasdegestiónde
libreríaspermitenintegrarnuevasfuncionalidadesenlaaplicaciónconpoco
esfuerzo.
3. MVC:Play2espuroMVC.Suinfraestructuradetrescapasbasadaenelpatrónde
diseñoMVCpermiteundesarrolloestructuradoyorganizadoquehacedelproceso
dedesarrollounodefácilelaboración.Elescalamientoylalocalizacióndeerrores
essencilloyeficaz.
4. Compilaciónautomáticaentiemporeal:GraciasaActivator,loscambios
realizadosenelcódigosoncompiladosyreemplazadosenelcontenedoren
tiemporeal.
56
Membresía|JulioM.FernándezJiménez
5. Evolution:PlayhaceusodeEvolutionparasincronizarelesquemadebasede
datosconelmodeloJPAprogramado.
Engeneralpuededecirsequeelperíododeimplementaciónfuemuysatisfactorioy
eficienteconvirtiendoaPlay2enunodemisframeworkdedesarrolloJavaEEfavoritos.
SoftwareUtilizado.
Paraeldesarrollodelsistemasehizousodelsiguientesoftwaredeterceros:
1. IntellijIDEAparaeldesarrolloycodificacióndelsistema.Esteharesultadoserel
únicoIDEconsoporteglobalparaPlay2.Apesardeello,alequipodeIDEAnoha
podidomantenersuproductoalaparconelpolimórficoPlay,especialmenteenla
gestióndelasvistasylaintegracióndeJavacomolenguajeprincipaldedesarrollo.
2. PostgresqlyMysqlcomosistemadegestióndebasededatos.Aunque
inicialmenteelsistemafuedesarrolladoparatrabajarconMySql,elservidorde
desarrolloenHeroku,utilizaPostgresql.Lamigracióndeunsistemaaotroesmuy
sencillagraciasaqueEvolutionseencargadegenerarlastablassegúnelSGBD
seleccionado.
3. Herokucomoservidordedesarrolloparaaplicacioneswebenlanube.Unodelos
grandesinconvenientesdeldesarrolloenJavaEEhasidosiempreelencontrarun
alojamientoescalableyfiableparaJavaEEconherramientaseficacesdecontrolde
despliegue.Esteeraunatareaprácticamenteimposiblehastahacepoco.Heroku
esprecisamentelasoluciónperfectaparaaplicacionesbasadasenJavaEE.Este
servidorenlanubepermiteeldesplieguedesistemasdesdelaconsolade
comandoasupropiosistemadeversióndegestionesoGit-Hubentreotros.
Herokuproveeunplangratuitoparaaplicacionesendesarrolloqueharesultado
muyeficazparaesteproyecto.Enadición,esteservicioproveesoporteespecial
paraaplicacionesPlay2quehacedelprocesodedespliegueunoaltamenteeficaz.
57
Membresía|JulioM.FernándezJiménez
4. DataGrip:EstegestordeescritoriodebasededatosdeIDEAhasidodegran
utilidadparacorroborarlaeficaciadelasentradasenlabasededatosyel
comportamientodelosdatoscomoresultadodelasaccionesejecutadasenel
códigoydurantelaejecucióndelsistema.
5. Docker:Sistemadevirtualizaciónquepermitecorreraplicacionescomomódulos
añadidossobreunamaquinavirtualLinux.Dockerproveelaherramienta
Kinematic,ungestordemódulosDockerquefacilitalainstalación,puestaen
marchayejecucióndeéstos.Dockerhasidoutilizadoparacorrerlasbasededatos
utilizadasduranteeldesarrollo,tantoparaMySQLcomoparaPostgresql.
6. AdminLTEControlPanelTemplate:Aunquenoesunaaplicaciónensi,esta
plantilladediseñoparagestoresdecontenidoshasidodegranutilidad.AdminLTE
esunsistemaresponsiveyadaptableconherramientasyplug-insenjavascript,
quehanresultadoaltamenteadaptablesalsistemadesarrollado.
7. Git:Git-Hubhasidoelrepositorioysistemasdecontroldeversionesoficialdeeste
proyecto.Elcódigofuenteestadisponiblealpúblicoengeneralen
https://github.com/grananda/membresia
58
Membresía|JulioM.FernándezJiménez
EstructuradelCódigo
LacarpetaprincipaldelaaplicaciónPlayes
app.Esaquídonderesidetodoelcódigo.
Estacarpetaestadivididaen:
1. Common:Carpetadondealmacenamos
elarchivobootstrapdeinicio.Aquíseubica
laclaseGlobal.javadondeseencuentran
lasfuncionesquenecesitamosquese
ejecutenantesydespuésdeponerel
sistemaacorrerocuandodetenemosla
ejecucióndelmismo.Aquítambiénse
encuentranloscron-jobsutilizadosenel
sistema,comoporejemplolacreaciónde
periodosdepagos.
2. Controllers:Aquíseencuentranlos
controladoresorganizadosenpaquetespor
componentesegúneldiseñode
componentespreviamentedescrito.
3. Lib:Archivosclasesdelibreríasde
tercerosutilizadasenelcódigo.
4. Models:Contienelasclasesmodelos
paraladefiniciónJPAenEbean.
5. Services:Estacarpetacontienelacapa
denegocios.
6. Views:AquíseencuentranlasvistasenhtmlScala.
7. Conf:Contienelosarchivosdeconfiguraciónglobaldelsistema,parámetrosde
conexióndebasesdedatosytraduccionesdelostextos.Estacarpetatambién
59
Membresía|JulioM.FernándezJiménez
almacenaloarchivosregionalesque
traducenlawebencatalán,
castellanooingles.
8. Project:Entreotrascosas,esaquí
dondesealmacenaelarchivo
configuraciónparalasdependencias
olibreríasdePlay.
CapadePresentación
Lacapadepresentaciónhasidomontada
sobreAdminLTEControlPanelTemplate
utilizandoplantillasenScalayTwirl
(frameworkdePlay2paraejecuciónde
plantillasHMTL).
Lasvistasestánorganizadasenpaquetes
segúnelcomponentealquepertenecen.En
adiciónaestospaquetes,lacarpetadelasvistascontienedoscarpetasespeciales.En
commontenemosarchivosdeámbitocomún,comoporejemplolaplantillaprincipalyla
decorreos(templates);elarchivodenavegación;lapaginacióndelistadosyelperfilde
usuario(parts).Estossontodosarchivoscomunesqueseencuentranentodaslaspaginas.
Perodetodoslosarchivosdelasvistas,quizáslosmásrelevantessonloscontenidosen
formData;estacarpetacontieneclasesquepermitenlavalidacióndelosmodelosdesde
elservidor.Estasclasestambiénseencargandetransferirlosobjetosdesdeelmodeloala
vistayderecolectarlosdatosqueprovienendeéstasatravésdePOSToGET.
Enadición,lascarpetaformcontienefragmentosScalaquegenerancomponentesde
formulariosHTMLenformatoTwitterBootstrap.
60
Membresía|JulioM.FernándezJiménez
Loscontroladorestambiénformanpartedelacapadepresentaciónyseubicanen
controllers,dondetambiénseorganizanporcomponente.Undatoaresaltarsobrelos
controladoresesquehacenusoanotacionesparacrearinyeccionesdedependenciaspara
elusodeserviciosdelacapadenegociosylaseguridad.
Laseguridadestadelegadaenunaclaseoacciónespecialdentrodelcontrolador
SecuredActionqueseejecutacadavezqueunaacciónlasolicitayquecompruebala
existenciadeunavariabledesesiónconcreta.
61
Membresía|JulioM.FernándezJiménez
CapadeNegocios
LacapadenegociosesalgoinexistenteenPlay.
AunquePlaysigueelpatrónMVC,éstehaceuso
delosarchivosparalosmodeloscomomedio
paraimplementarlacapadenegocio.
Conlafinalidaddecrearunaabstraccióny
separaciónderesponsabilidadesmasadecuadaa
lasnecesidadesdelsistema,seoptóporcrear
unacapadenegociosaisladaamodode
servicios.Estacapacontienelosarchivosquese
encargandeprocesarlosdatosprovenientesdel
controladoryprepararlos,sicabe,paraser
transferidosalmodelo.Esaquídondeencontramoslosinterfacesydondeseimplantaría
elaccesoRESTfulcomopartedeunservicioweb.
LaCapadeIntegración
Estacapaestarepresentadaporlosmodelos.Los
archivosclasescontenidosenestacapasonlos
encargadosdemodelarlasentidadesquecomponen
eldiagramaUML.EstosmodeloshaceusodeEbean
comosistemadepersistenciadedatos.
Enadición,estasclasescontienetodalalógicaque
interaccionaentreelobjetoyEbeanparagarantizar
lapersistenciaconlabasededatos.Esenestacapatambiéndesdedondeextraemoslos
datosnecesariosdesdenuestrabasededatosparamostrarlosenlasvistas.
Peronotodoslosmodelosenestacapasonpersistentes.Algunosdeellossonvirtuales,es
decir,quecarecendepersistenciaenlabasededatos.Unodelosmodelosvirtualesmas
62
Membresía|JulioM.FernándezJiménez
destacadoseseldeestadísticas.Estemodelonotienepersistenciadedatosyaquesu
funciónesladerecolectarlainformaciónnecesariaparaconstruirlosinformesygráficos
delsistema.
EsimportantecomentarqueesteeselúnicomodeloquenoutilizaJPAyhaceusodeSQL
puroparasufuncióndeextraccióndedatos.Alevadirelsistemadepersistenciadedatos,
elSQLesdependientedelSGBDyporellosehandejadoenelcódigolosSQL
correspondienteaPostgresqlyMySQL,aunqueelactualmenteutilizadoeselque
correspondeaPostgresql.SisehacerusodeunSGDBdiferentealosmencionados,seria
necesarioescribirelSQLcorrespondienteaestenuevosistema.
63
Membresía|JulioM.FernándezJiménez
TrabajoFuturo
Amedidaqueavanzabaeldesarrollodelproyectonuevasideassobrecomomejorarel
productofueronsurgiendo,asícomootraspocasquesefueronquedandoatrásporser
consideradaspocoútilesodemasiadolaboriosascomoparacumplimentarconlafecha
deentregaacordadaenelcalendariodetrabajo.Algunasdeestasfuncionalidadesen
vistasdeserproducidasenunfuturoson:
•
Listadodepagospendientes:Aunqueoriginalmenteprevista,estafuncionalidad
nopudoserincorporadaenelsistema.Sinembargoseconsideraqueesdesuma
importanciaparalagestióndeloscobrosdelascuotasyseráimplementadaenun
futuro.
•
ServiciosWeb:Laimplementacióndeservicioswebremotosparafunciones
básicasdesistema,comoporejemploejecutarunpagoocrearunainstancia,son
funcionalidadesqueestánprevistaaserincorporadascomoservicioswebenuna
futuraactualizacióndelsistema.
•
Ajax:Laexperienciadelusuarioesimportanteyporesounadelasmejorasa
implementarenunfuturosonserviciosAJAXquepermitanagilizarlaformaenque
elusuariovisualizalainformación.Estaimplementaciónestaprevistainicialmente
enlavistadedetalledelassubscripciones,desdedondeelusuariogestorpodrá
verlospagosrealizadosporperiodosymiembrosegúndeseeenvezdeunlistado
globaldetodoslospagospendientesquepuederesultarpocoviableunavezse
hayarecolectadounagrancantidaddepagos.
•
PortalMiembros:Unadelasfuturasimplementacionesmasambiciosasesun
portalpublicoparamiembros.Desdeesteportalunmiembropodrádarsedealtae
inscribirsealasubscripcionesquedesee.
•
SistemaGlobal:Porultimo,ycomocomplementoalpuntoanterior,seesperaque
Membresiapuedaconvertirenunportaldemembresíasglobalenelquecualquier
asociaciónpuedadarsedealtaygestionarsuspagosysociosdesdeunmismo
64
Membresía|JulioM.FernándezJiménez
lugarencomúncondiversosmétodosdepagosyserviciosadicionalescomola
gestióndeactividades.
Conclusiones
DebodecirquealprincipioteniamisdudassobreelusodePlayeneldesarrollodeeste
proyecto,perounavezenmarchapudedescubrirunframeworkeficazcapazdehacerel
trabajofácil,eficienteypráctico.Sencillamente,sepuededecirquePlayfuncionayno
dudoqueenpardeañosseconviertaenelframeworkdedesarrolloporexcelenciapara
desarrollosenJavaEE.
ComoantiguoprogramadordesistemabasadosenGroovyandGrails,puedodecirque
PlayamejoradoeldesarrolloenJavaEEdeunaformanotable.Surobustez,simplicidady
altorendimientosuperanconcrecesaGrailscomoframeworkdedesarrolloparaJavaEE.
PlayesunbuenejemplodecómounatecnologíatanrobustacomoJavaEEpuedeestaral
alcancedetodos.
Hasidountrabajoduro.Másdetresmesesdetrabajocontinuoydeaprendizaje
constantedenuevastecnologías.Porotroladohasidolaculminacióndeunproyectode
vidadeañosdecarrera,unviajedecrecimientointelectualypersonal.Mientras
trabajabaenelproyectohepodidorecordarmisprimerosañosdecarreracuandoapenas
podíaescribirdoslíneasenJavasinbuscarreferenciasenlaweb;nueveañosmastarde
puedodecirqueeldesarrollohasidofluidoymetódico,señalinequívocademidominio
sobreellenguajeescogidoparaeldesarrollodelapractica.
Sobremisinteresesfuturosprofesionaleshepodidomeditarydefinirhaciadondequiero
(ynoquiero)ir,quedestrezasquierodesarrollarycualesdelegar.Esteproyectomeha
servidodevehículoparadefinirmismetasamedioylargoplazodentrodelámbito
profesional,yestoseresumeenunadedicacióncompletaaldesarrollodesistema
puramenteenfocadosalback-end.Programaresloqueséhaceryloquemásdisfruto
dentrodetodaslasfacetasquelaingenieríaencomputadoresofrece.
65
Membresía|JulioM.FernándezJiménez
Fuentes
Recursos
JavaOracle
http://www.oracle.com/
Ebean
https://ebean-orm.github.io/
PlayFramework
https://www.playframework.com/
MySQL
https://www.mysql.com/
Postgresql
http://www.postgresql.org.es/
Docker
https://www.docker.com/
VitualBox
https://www.virtualbox.org/
Git-Hub
https://github.com/
Axure
http://www.axure.com/
Fortawesome
https://fortawesome.github.io
Playmailer
https://github.com/playframework/play-mailer
Artículos
EbeanORM
https://ebean-orm.github.io/docs/
66
Membresía|JulioM.FernándezJiménez
JavaServlets
http://users.dcc.uchile.cl/~jbarrios/servlets/general.html
Scalatour
http://docs.scala-lang.org/tutorials/tour/tour-of-scala.html
Play,themainconcepts
https://www.playframework.com/documentation/1.0/main#lifecycle
Day30:PlayFramework–AJavaDeveloperDreamFramework
https://blog.openshift.com/day-30-play-framework-a-java-developer-dream-framework/
WhataretheprosandconsofthePlayFramework2,foraJavadeveloper?
https://www.quora.com/What-are-the-pros-and-cons-of-the-Play-Framework-2-for-aJava-developer
HowdoIgeneratearandomalpha-numericstring?
http://kodejava.org/how-do-i-generate-a-random-alpha-numeric-string/
ResponsiveHTMLemailtemplate
https://github.com/leemunroe/responsive-html-email-template
https://gist.github.com/monteiro/4353448
AuthenticationinPlayFrameworkusingJava
http://alexgaribay.com/2014/06/16/authentication-in-play-framework-using-java/
PlayAuthetication
https://github.com/alexgaribay/play-authentication
Addingauthentication
https://www.playframework.com/documentation/2.2.x/JavaGuide4
SOLVING@INJECTNULLPOINTEREXCEPTION
http://www.javablog.be/inject-nullpointerexception/
JavaEECDIDependencyInjection(@Inject)tutorial
http://www.javacodegeeks.com/2013/05/java-ee-cdi-dependency-injection-injecttutorial.html
SchedulingJobsInPlay2
http://brainstep.blogspot.nl/2013/10/scheduling-jobs-in-play-2.html
67
Descargar