Navigating Efficient Web Application Development: Cloudflight's Architectural Insights

Search for a command to run...

No comments yet. Be the first to comment.
In this series, we will show you different approaches to create a small web application with various technologies. The focus is to finish fast, still build reliable and sustainable solutions
Introduction As programmers, we often revel in the most technical-complete solutions and prefer writing our services from the ground up. That is both a blessing and a curse: the control, efficiency, and power of writing everything yourself comes at t...
TL;DR This post explains how iOS Universal Links work and what is required to implement them. It covers how to handle incoming links in an iOS app, how to create and configure the Apple App Site Association (AASA) file, and how to correctly host the ...

TL;DR The Page Object Model (POM) is the industry standard, but it is not easily scalable. The Flow Model Pattern improves upon the basic POM, offering a perfectly balanced solution that is not overly complex yet still scalable. The Screenplay Patter...

Preface In a previous article from the start of this year, I mentioned various frameworks that can be used for mobile test automation. The one that came up repeatedly was WebdriverIO, which I have been using actively for over two years now. It is a s...

Let’s be honest - who wakes up and and is excited to read button labels or error messages? But have you ever clicked a vague “Next” button and immediately regretted it because you had no idea where it was taking you? Or stared at an error message lik...

Part 1 - An Introduction to the matter What will this series be about? During this series of blog posts, I will do my best to provide my opinion on specific models, determine which use case each one fits, discuss the pros and cons of using that model...

In the fast-evolving realm of digital solutions, the efficacy and agility of web application development have emerged as critical determinants of success. Within this landscape, we want to find out what the best architectural choice is.
In this insightful blog post series, we embark on a captivating exploration of diverse web application architectural approaches, dissecting each and evaluating how they align with the goals of efficiency, innovation, and competitive advantage. Whether you're a seasoned developer aiming to stay abreast of the latest trends or a business leader seeking strategies for informed decision-making, this journey will provide invaluable insights to help you select the optimal architectural approach for your unique projects.
Let's see the key architectural approaches that we selected for this journey:
Strapi with Spring Boot Backend and Vue.js Frontend: The elegance of Strapi, a powerful headless CMS, in tandem with the robust Spring Boot backend and Vue.js frontend. We assume that this combination creates a dynamic ecosystem that streamlines content management and backend operations with Vue.js as our go-to choice for a seamless, responsive and interactive user experience.
No-Code Power Platform Suite: Recognizing the demand for rapid development, we look at the power of no-code platforms like Microsoft's Power Platform Suite. This approach empowers businesses to create applications with minimal coding thereby accelerating development, enhancing agility, and lowering entry barriers.
React Admin Frontend with Node.js Backend: Pairing React Admin as a frontend framework with a clean Node.js backend. This approach fosters modular, efficient, and fast user interfaces for admin panels, while Node.js provides a scalable and event-driven foundation for backend operations.
As we progress through this exploration, we'll delve into how these architectural approaches contribute to these core goals:
Expediting Development Speed: Swift application development across diverse projects. By leveraging proven frameworks and architectural patterns, we want to minimize time-to-market, ensuring applications are ready to meet the ever-evolving digital landscape.
Efficiency for Diverse Projects: The ability to efficiently cater to projects of varying sizes, from MVPs to intricate prototypes. This approach enhances competitiveness by delivering cost-effective solutions promptly without compromising quality, security, or reliability.
Eradicating Redundancy: Abolishing redundant efforts. By advocating the use of reusable components and standardized modules, we want to transform each project into a building block of innovation, fostering a cumulative repository of best practices.
Every good analysis needs real-world challenges to tackle in order not to become a theoretical exercise. Therefore we set ourselves the goal of developing an application that fulfills the following minimal requirements to compare the different architectural approaches.
Develop a resource reservation system applicable to diverse scenarios. This system will enable users to reserve specific resources within various categories for a configurable duration (initially set to 30 minutes).
Key Requirements:
Informative Website: The system will include a website that offers general information and allows users to customize content on two distinct pages without requiring technical expertise. The third page, accessible post-login, will provide specialized details.
Resource Reservation: Once users are logged in, they can explore available resources across different categories and make reservations for a defined duration. The data model encompasses User (ID, Username, Password, Email), Resource Category (ID, Category Name), and Reserved Resource (ID, Category ID, Number, Reserved Until).
Scheduled Task for Reservation Cleanup: An automated task will periodically clear reserved resources once the specified time duration has passed.
Admin Functionality:
Administrators have additional privileges:
Resource and Category Management: Admins can establish new resource categories and related resources, contributing to the efficient organization of available resources.
User Oversight: Admins can create new users, both with administrative and non-administrative roles. This functionality simplifies user access and role assignment within the system.
A user-friendly interface, resource reservation capabilities, and administrative tools are key requirements for effective resource management. Users will interact with informative content, reserve resources across categories, and benefit from automatic reservation clearance. Admins can create and manage resource categories, resources, and users, providing a comprehensive solution for resource reservation and administration.
Additional (optional) requirements:
Integration of OIDC (OpenID Connect): The system shall integrate OpenID Connect, with the possibility of utilizing a service like Keycloak. This integration shall ensure secure user authentication and authorization, enhancing the overall security of the system.
Integration of Payment Provider: The project shall incorporate an integration with a payment provider. This integration shall facilitate seamless transactions for users making payments for their reserved resources.
Mail Sending: The system shall be equipped with the capability to send emails. It shall be responsible for notifying users about various events such as successful reservations, upcoming reservation expirations, and other relevant communications, ensuring efficient user engagement.
Responsiveness (Desktop + Mobile): The website's design and implementation shall prioritize responsiveness. The user interface shall be adaptable and user-friendly across a range of devices, including both desktop and mobile platforms.
Internationalization (i18n): The project shall incorporate internationalization (i18n) support. The system shall be designed to accommodate various languages and locales, thereby promoting accessibility and usability for a diverse user base.
As our journey unfolds, we'll uncover how each architectural approach aligns with these overarching goals.
Stay tuned!