• Nenhum resultado encontrado

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

Documentos relacionados