Overview
Aurora is more than a weather widget: it is an enterprise-style full-stack application centered on layered architecture and security flows.
Problem and goal
The application needed clear identity, authorization, and data-access boundaries while serving live forecasts to users and record management to administrators.
My role
- Developed Clean Architecture layers and REST API contracts.
- Implemented JWT access/refresh token and role-based authorization flows.
- Integrated profile, administration, weather CRUD, and live forecast screens.
Solution
- Separated domain, application, infrastructure, and API responsibilities.
- EF Core/PostgreSQL handled persistent records while an external forecast integration supplied live data.
- The React interface exposed actions according to user and administrator permissions.
Architecture
The system’s main components and data/decision flow are separated as follows.
Tech stack
API and identity/authorization flows
Role-aware user interface
Data access and persistence
Consistent local environment
Implementation decisions
- Treat authentication and authorization as separate controls.
- Keep live external data and managed persistent records behind distinct service boundaries.
Results and evaluation
- Completed an end-to-end application covering identity, profile, administration, record management, and live forecasts.
Challenges and solutions
- Token lifecycle → separate access and refresh flows with clear responsibilities.
- Role boundaries → apply controls in both API and interface layers.
What I learned
The project reinforced that layered architecture is not just folder structure; it contains changing external services and security flows.