4. DESENHO E DESENVOLVIMENTO
4.3 MOCKUP E DESENVOLVIMENTO DA SOLUÇÃO
4.3.3 BASE DE DADOS E API
Para suportar toda a aplicação foi desenvolvido uma base de dados e uma API para possibilitar a persistência dos dados e a comunicação entre as plataformas. Partindo do diagrama de classe (Figura 4), foram criadas todas as coleções necessárias de forma a persistir todos os dados necessários. Para isso foi utilizado como já apresentado a tecnologia MongoDB, tirando partido das vantagens que acarreta já apresentadas. Posteriormente foi então desenvolvida a API utilizando Node.JS/Express de forma a fornecer e disponibilizar os dados tanto para a dashboard e website tanto como todo a sistema de autenticação que garante a autenticação na dashboard.
Com o desenvolvimento da API fica assim implementada a camada logica da arquitetura, completando assim todas as camadas do sistema.
CONCLUSÕES
Este projeto de mestrado assumiu como objetivo principal o desenvolvimento de uma plataforma digital constituída por um website, onde é possível apresentar toda a informação do projeto GAT Solidário para o público, e uma dashboard para acrescentar e gerir toda a informação dinâmica apresentada no mesmo website, sendo assim possível enquadrar o problema em questão, bem como a sua motivação e objetivos. No seguimento, realizou-se uma revisão de literatura apoiado em conceitos como a arquitetura de sistemas web.
De seguida, foi realizado um levantamento de requisitos, especificando assim todos os requisitos funcionais e não funcionais, que permitiu fazer a modelação de todo o sistema, definindo os diagramas de classes, casos de uso, atividades e de sequência tendo como base os conceitos da linguagem de modelação UML.
Após a modelação, foi realizada uma análise tecnológica, comparando diferentes tecnologias, de forma a encontrar a que melhor se adapte a cada uma das camadas aplicacionais. Com base na modelação e na análise tecnológica foi então desenvolvida toda a plataforma, concretizando assim todo o sistema de gestão pretendido, que, tendo em conta os objetivos definidos, estes foram realizados e implementados de forma a construir um sistema coeso e em conformidade com a especificação identificada.
Devido essencialmente a dimensão e detalhe deste sistema, foi possível consolidar diversos conhecimentos a nível pessoal, quer na área de engenharia de software, como a especificação dos requisitos e a modelação do sistema, bem como na área de desenvolvimento ao pôr em prática diferentes tecnologias. Durante todo o processo existiram também diversas dificuldades, nomeadamente em relação ao design gráfico, tendo este sido desenvolvido em conformidade com os requisitos e experiência própria. Assim sendo, é recomendado que num futuro próximo, todo o design seja revisto e validado por uma entidade externa, focada e qualificada para mesmo, de forma a garantir uma melhor experiência de utilização, quer aos professores e responsáveis do GAT Solidário que utilizarão a dashboard, bem como aos utilizadores que consultam o website, sendo este uma porta pública para que o projeto GAT Solidário partilhe todos os seus projetos e eventos
Numa perspetiva futura, terá se ser analisada toda a infraestrutura em que este sistema será implementado, para garantir que este respeita todas as possíveis regras e normas definidas para que possa assim ser feito o deploy de toda a solução. Por outro lado, a presente plataforma acaba por estar limitada à tecnologia utilizada, podendo ser necessário alterações na infraestrutura. Em relação ao website, existe conteúdo estático, tendo este que ser alterado diretamente na aplicação que, em parceria com os responsáveis do projeto GAT Solidário será necessário definir. A par do presente documento, toda a documentação pode ser melhorada, de forma a garantir uma melhor sustentabilidade de todo o sistema. Para alterações futuras ou mesmo para demonstrações de funcionamento, estarei disposto a contribuir e auxiliar, tanto quanto possível, com a instituição e o projeto GAT Solidário.
Com a realização deste projeto, um professor do projeto GAT Solidário, pode assim gerir toda a informação e conteúdo num único sistema independente, ao contrário do que é utilizado até a data. Todo o
projeto foi desenvolvido a pensar na escalabilidade do mesmo, podendo no futuro serem desenvolvidos componentes adicionais, tanto na gestão de conteúdo como na visualização de informação no website.
REFERÊNCIAS BIBLIOGRÁFICAS
Adamkó Attila. (2019). Chapter 4. Layered Architecture for Web Applications. Retrieved March 6, 2019,
from University of Debrecen, Faculty of Informatics website:
https://gyires.inf.unideb.hu/GyBITT/08/ch04.html
Anheier, H. K., & Salamon, L. M. (1999). Volunteering In Cross-National Perspective: Initial Comparisons (Vol. 62). https://doi.org/10.2307/1192266
Astin, A. W., & Sax, L. J. (1998). How Undergraduates Are Affected by Service Participation. Journal of College Student Development, 39, 251–263.
Astrahan, M. M., Mehl, J. W., Putzolu, G. R., Traiger, I. L., Wade, B. W., Watson, V., … McJones, P. R. (1976). System R: relational approach to database management. ACM Transactions on Database Systems. https://doi.org/10.1145/320455.320457
Chaniotis, I. K., Kyriakou, K. I. D., & Tselikas, N. D. (2015). Is Node.js a viable option for building
modern web applications? A performance evaluation study. Computing, 97(10), 1023–1044.
https://doi.org/10.1007/s00607-014-0394-9
Chitra, L. P., & Satapathy, R. (2017). Performance comparison and evaluation of Node.js and traditional
web server (IIS). 2017 International Conference on Algorithms, Methodology, Models and Applications in
Emerging Technologies, ICAMMAET 2017, 2017-Janua, 1–4. https://doi.org/10.1109/ICAMMAET.2017.8186633
Codd, E. F. (1989). Relational Database: A Practical Foundation for Productivity. In Readings in Artificial Intelligence and Databases. https://doi.org/10.1016/B978-0-934613-53-8.50009-1
Erickson, J., & Siau, K. (2007). Can UML be simplified? Practitioner use of UML in separate domains. CEUR Workshop Proceedings, 365, 81–90.
Filhos do Coração. (2016). Filhos do Coração » História. Retrieved March 6, 2019, from https://www.filhosdocoracao.org/porque-filhos-do-coracao/historia/
Fleming, J., & Koman, R. (1998). Web Navigation: Designing the User Experience. O’reilly. Retrieved from https://www.oreilly.com/ideas/interface-and-interaction-design
Gil-Lacruz, A. I., Marcuello, C., & Saz-Gil, I. (2017). Individual and Social Factors in Volunteering Participation Rates in Europe. Cross-Cultural Research, 51(5). https://doi.org/10.1177/1069397117694135
Grönlund, H., Holmes, K., Kang, C., Cnaan, R. A., Handy, F., Brudney, J. L., … Zrinščak, S. (2011).
Cultural Values and Volunteering: A Cross-cultural Comparison of Students’ Motivation to Volunteer in 13
Countries. Journal of Academic Ethics. https://doi.org/10.1007/s10805-011-9131-6
Hall, M., Lasby, D., Ayer, S., & Gibbons, W. D. (2009). Caring Canadians, involved Canadians : highlights from the 2007 Canada Survey of Giving, Volunteering and Participating. Statistics Canada.
Han Jing, E Haihong, Le Guan, & Du Jian. (2011). Survey on NoSQL Database. 2011 6th International
Hevner, March, Park, & Ram. (2004). Design Science in Information Systems Research. MIS Quarterly. https://doi.org/10.2307/25148625
Iivari, J. (2007). A Paradigmatic Analysis of Information Systems As a Design Science. In Scandinavian Journal of Information Systems (Vol. 19).
Kelly, S., & Tolvanen, J.-P. (2008). Domain-specific modeling : enabling full code generation. Wiley-Interscience.
Leavitt, N. (2010). Will NoSQL Databases Live Up to Their Promise? IEEE Computer Society. https://doi.org/10.1109/mc.2010.58
Lei, K., Ma, Y., & Tan, Z. (2015). Performance comparison and evaluation of web development
technologies in PHP, Python and Node.js. Proceedings - 17th IEEE International Conference on
Computational Science and Engineering, CSE 2014, Jointly with 13th IEEE International Conference on Ubiquitous Computing and Communications, IUCC 2014, 13th International Symposium on Pervasive Systems, , 661–668. https://doi.org/10.1109/CSE.2014.142
Li, Y., & Manoharan, S. (2015). A performance comparison of SQL and NoSQL databases A performance
comparison of SQL and NoSQL databases. 978-1-4799-1501-9/13- 2013 Ieee, (November), 15–19.
https://doi.org/10.1109/PACRIM.2013.6625441
Madhuri A. Jadhav, Balkrishna R. Sawant, A. D. (2015). Single Page Application using AngularJS. Journal of Cultural Economics, 1(2), 1–4. https://doi.org/10.1007/BF02310579
Musick, M. A., & Wilson, J. (2007). Volunteers: A Social Profile. Indiana University Press.
Offutt Jeff. (2002). Quality Attributes of Web Software Applications. IEEE Software,
(10.1109/52.991329).
Pacheco Lacerda, D., Dresch, A., Proença, A., Valle, J. A., & Júnior, A. (2013). Design Science Research: Método de pesquisa para a engenharia de produção Design Science Research: A research method to production engineering.
Parker, Z., Poe, S., & Vrbsky, S. V. (2013). Comparing NoSQL MongoDB to an SQL DB. Proceedings
of the 51st ACM Southeast Conference on - ACMSE ’13, 1. https://doi.org/10.1145/2498328.2500047 Peffers, K., Tuunanen, T., Rothenberger, M. A., & Chatterjee, S. (2007). A Design Science Research
Methodology for Information Systems Research. In Journal of Management Information Systems (Vol. 24).
Reghunadh, J., & Jain, N. (2011). Selecting the optimal programming language. Retrieved July 3, 2019, from https://www.ibm.com/developerworks/library/wa-optimal/index.html
Robertson, S., & Robertson, J. (2012). Mastering the Requirements Process: Getting Requirements Right (3rd Editio). Addison-Wesley Professional.
Romme A., G. L. (2003). Making a Difference: Organization as Design. Organization Science. https://doi.org/10.1287/orsc.14.5.558.16769
Rumbaugh, J., Jacobson, I., & Booch, G. (2004). The Unified Modeling Language Reference Manual
Second Edition. In Pearson Higher Education (Vol. 240). Retrieved from
Ryff, C. D., & Singer, B. H. (2008). Know thyself and become what you are: A eudaimonic approach to psychological well-being. Journal of Happiness Studies. https://doi.org/10.1007/s10902-006-9019-0
Slade, S. (1993). Goal-based Decision Making: An Interpersonal Model. L. Erlbaum Associates Inc. Smith, K. A., Holmes, K., Haski-Leventhal, D., A. Cnaan, R., Handy, F., & L. Brudney, J. (2010). Motivations and Benefits of Student Volunteering: Comparing Regular, Occasional, and Non-Volunteers in
Five Countries. Canadian Journal of Nonprofit and Social Economy Research.
https://doi.org/10.22230/cjnser.2010v1n1a2
Sommerville, I. (2016). Software engineering (10th edition). In Pearson Education Limited.
Stonebraker, M. (2010). SQL databases v. NoSQL databases. Communications of the ACM, 53(4), 10.
https://doi.org/10.1145/1721654.1721659
Tilkov, S., & Vinoski, S. (2010). Node.js: Using JavaScript to build high-performance network programs. IEEE Internet Computing, 14(6), 80–83. https://doi.org/10.1109/MIC.2010.145
Web framework rankings | HotFrameworks. (2019). Retrieved July 3, 2019, from https://hotframeworks.com/languages/javascript
Williams, H. E., & Lane, D. (2009). Web Database Applications with PHP & MySQL.
Wilson, J. (2000). Volunteering. Annual Review of Sociology.
OUTRAS REFERÊNCIAS
Adamkó Attila. (2019). Chapter 4. Layered Architecture for Web Applications. Retrieved March 6, 2019, from University of Debrecen, Faculty of Informatics website: https://gyires.inf.unideb.hu/GyBITT/08/ch04.html
Filhos do Coração. (2016). Filhos do Coração » História. Retrieved March 6, 2019, from https://www.filhosdocoracao.org/porque-filhos-do-coracao/historia/
Fleming, J., & Koman, R. (1998). Web Navigation: Designing the User Experience. O’reilly. Retrieved from https://www.oreilly.com/ideas/interface-and-interaction-design Reghunadh, J., & Jain, N. (2011). Selecting the optimal programming language. Retrieved July 3, 2019, from https://www.ibm.com/developerworks/library/wa-optimal/index.html
Web framework rankings | HotFrameworks. (2019). Retrieved July 3, 2019, from https://hotframeworks.com/languages/javascript
ANEXO I