Our application is structured using a 3-layer architecture, two of which are enveloped by our web application. This structure provides flexible development and easier building through technologies such as React and TypeScript. We chose this structure to ensure a smooth transition during project turnover, allowing future teams to easily understand the design and layer separation.The static and dynamic architectures outlined below further explore the interactions within our system.
Our architecture was planned to efficiently build a dynamic application. By maintaining a clear separation between different architectural levels, we effectively outlined the tasks and processes each section would manage during runtime.We utilize Google Sign-On via OAuth 2.0 for user authentication. This approach leverages Google’s robust security infrastructure, including multi-factor authentication. As a result, we do not store sensitive password information, reducing vulnerabilities related to password reuse and database breaches.
Our static system architecture was designed to develop a responsive interface and an efficient full-stack web application. We clearly delineate between the front-end, back-end, and database layers to represent their interactions.Figure 1.1 - Static System Diagram
Our dynamic system architecture represents a real-world user scenario for creating and managing a Carpool Group. A system sequence diagram illustrates how different components interact to create a seamless user experience.Figure 1.2 - Dynamic System Diagram