Introduction
Rey Juan Carlos University tasked me with developing an APP to centralize all student examination data, enhance student performance, and eliminate the use of paper in creating student exam rubrics.
There was no existing solution that facilitated the digitization of student exams and met the University’s requirements: a cross-platform, multi-device, multi-browser, responsive APP with analytics and advanced rubric integration. After several coordination meetings and analysis of requirements and functionalities, I generated an Inception analysis document detailing the tasks, scope of the project and development strategy and plan.
My role and contributions
- As the Technical Director, I worked on management, coordination of meetings with the University, analysis, design, architecture, and development of the solution.
- The application was developed with scalability in mind, capable of supporting thousands/millions of students, and designed using the best development practices and the agile Scrum methodology to provide the University with constant development monitoring.
- For the technical implementation of the APP, I evaluated Flutter, React Native, and Svelte. All three options were viable, but to ensure meeting the University’s requirements and quickly develop a cross-platform app including Windows PC Desktop, Linux Desktop and MAC, Flutter was ultimately chosen.
- For the backend technical implementation, given the project’s timelines and scope, NodeJS/Javascript over Golang was chosen (which would have been the best choice in terms of performance and scalability).
How we did it
- The APP was developed using Google Flutter and Dart to meet all the aforementioned requirements.
- For the backend, a set of Microservices in Javascript with NodeJS and FastifyJS framework was developed, enabling easy development with a Hexagonal Architecture using a lightweight framework with great performance.
What we achieved
Thanks to choosing Flutter, in less than 4 months, I developed a cross-platform, multi-device, multi-browser, and responsive APP that met all the University’s requirements and functionalities. Based on my previous experience developing mobile applications with Ionic, this development would not have been possible, or would have been much more complex.
The decision to use Flutter for app development was a significant success.
- I developed an APP that allowed managing rubrics and saving student exam grades and creating new exam rubrics to improve the feedback on students’ learning in certain subjects, and to consult subjects, student calendar and analytics.
- The backend Microservices solution enabled managing all application information in a Mongo database and managing user sessions across all devices. Thanks to nodeJS and Fastify, response times for each request were significantly reduced.
Example of user exam rubric autoevaluation:
Challenges, difficulties and solutions
The project faced several major challenges, from the initial analysis and technology choice to developing an APP completely from scratch.
User session, security and legal integration were challenging
Thanks to my previous experience working on the development of different management systems and user applications over 20 years, I knew how to develop and tackle certain complex functionalities, such as user session, security, final deploy and release in production and legal integration of the application.
- User session was a critical point that took more time than expected to develop. The need to develop a correct user session management compatible across multi-device, multi-platform, and multi-browser, and to be totally secure (I’m somewhat paranoid about security), posed a significant personal challenge and hours of analysis and testing. There was no Flutter plugin that facilitated all the necessary compatibility, so it was necessary to generate a custom improved session with the help of the base code of a user session plugin, generating session cookies and authentication tokens on server and DB, and synchronizing the session on the client according to the device that connected (Desktop, WebBrowser, Mobile Native App..), always offering maximum compatibility to achieve session persistence in each case.
- Another major challenge was the legal aspect of the application, where numerous management and analysis tasks were required to ensure the APP complied with various European and Spanish legislation, such as GDPR, LOPD, Spanish Data Protection Laws, Cookie Management and notice, Privacy Laws, etc. In addition to consulting with various specialized lawyers, it was necessary to resort to online services for the generation, verification, and integration of legal requirements.
- Additionally, integrating a customized Excel DataSheet within the APP for managing student rubrics was another complex challenge. Customization, responsive visualization, and multi-device compatibility increased development time.
Results
I developed an APP that met all the customization required by the University, and a pilot integration was carried out.
The APP was a success story and is currently integrated and operational in the Dentistry department, regularly used by more than 100 students, having solved the main problems the University faced, such as printing hundreds of student rubrics on paper each month, or lacking a centralized system for managing student information.
Now, students can connect from any device and view and manage their advanced rubrics.
Conclusion
Developing an APP with these features presents great complexity, and exhaustive analysis of the necessary requirements for its development is essential to determine its scope.
Management, continuous communication, and feedback received from the University were key to achieving the correct development of the APP and avoiding deviations and incorrect developments.
Life has shown me that experience and constant personal effort ultimately achieve great things.