Low-Fidelity Prototype
Early planning stage focused on information architecture, user flow and the structure of the main shopping experience.
A real-world eCommerce mobile application developed across UI/UX design, Flutter frontend, .NET Core backend APIs, SQL Server database integration, security implementation and comprehensive testing.
The project spanned the entire lifecycle from initial requirements through production stabilization:
Define scope and features
Low-fidelity → High-fidelity
Frontend & backend code
API & database connection
Validation & verification
Debug & production ready
The project started with planning and visual design before implementation. The prototypes below show the progression from the initial structure to the refined interface that was later translated into Flutter screens.
Early planning stage focused on information architecture, user flow and the structure of the main shopping experience.
Refined visual design covering layout, typography, colors, spacing and the interface details prepared for Flutter implementation.
The application began with design in Figma, then translated into functional Flutter screens with seamless API integration.
Users see their delivery location and a curated feed of fresh products organized by category. The home screen displays active promotions and featured products with real-time pricing.
Each product offers multiple weight options (0.25 kg to 5 kg) with real-time price calculation. The detailed product screen shows high-quality images and descriptions.
Save frequently purchased items for quick reordering. The favorites list shows current prices and available discounts at a glance.
A focused checkout screen that brings delivery details, order totals, payment selection, and final confirmation together in one clear flow.
Every screen is optimized for simplicity and efficiency, from secure authentication through account management.
From building the cart to reviewing past purchases and confirming a new order, every step stays clear, focused, and easy to follow.
A modern, professional technology choice for mobile eCommerce development:
The application follows a separation of concerns pattern with clear responsibility boundaries across presentation, service, data, and database layers.
UI & User Interaction
JSON over HTTPS
HTTP Endpoints
Request Handling
Business Logic
Services & DTOs
Repository & EF Core
DbContext
Persistent Storage
Cross-cutting concerns, logging, configuration
Common DTOs, utilities, constants
Unit and integration tests
A user interaction on the mobile app triggers an HTTP request that flows through the API layers, services, and repositories to query or modify data in SQL Server, then returns a JSON response through the same layers back to the Flutter UI.
The project was built using solid software engineering principles that ensure maintainability, scalability, and reliability:
Clear boundaries between presentation, business logic, data access, and database layers minimize coupling and improve testability.
Services and repositories are injected rather than hard-coded, improving flexibility and enabling easier unit testing.
Data access logic is abstracted into repositories, providing a clean API for querying and modifying data.
DTOs (Data Transfer Objects) are automatically mapped between API contracts and domain models, reducing boilerplate.
Comprehensive exception handling and structured logging enable quick debugging and production issue resolution.
Input validation at multiple layers prevents invalid data from reaching the database and ensures API contract compliance.
Software Development Life Cycle principles provide a structured approach to planning, designing, developing, testing, deploying, and maintaining software systems.
Common logic is extracted into reusable services and utilities to reduce duplication and maintenance burden.
Projects are organized by concern (API, Application, Data, Infrastructure) with clear naming conventions and folder structure.
The backend exposes RESTful endpoints that the Flutter application consumes via HTTP requests and JSON responses.
Flutter App
Method & Endpoint
Route & Handler
Business Logic
Repository Query
/api/products
Retrieve all products
/api/products/{id}
Get product details
/api/favorites
Retrieve user favorites
/api/favorites
Add to favorites
/api/favorites/{id}
Remove from favorites
/api/promotions
Active promotions
The application implements security best practices to protect user data and API endpoints from unauthorized access.
Each API request is secured with JWT bearer tokens in the Authorization header. The server validates token authenticity and expiration before processing requests. HTTPS ensures encrypted communication between the Flutter app and the .NET Core API, protecting sensitive data from interception.
SQL Server stores all application data with Entity Framework Core handling object-relational mapping and query execution.
The repository pattern abstracts data access, allowing services to query and modify data without direct SQL knowledge. EF Core's lazy loading and eager loading strategies optimize query performance for mobile-friendly response times.
Multiple testing approaches ensure API reliability, data integrity, and application stability throughout development.
The Cayan.Project.Tests project validates application behavior through tests of services, repositories, and database interactions. Tests ensure that business logic functions correctly when services call repositories, which in turn query SQL Server through Entity Framework Core.
Postman was used throughout development to test API endpoints, verify request/response contracts, and validate HTTP status codes. Swagger provides interactive API documentation for exploring available endpoints and their parameters.
Compile code
Run tests
Identify issues
Resolve problems
Merge & stabilize
The complete application combines Flutter mobile UI with a sophisticated .NET backend architecture to deliver a seamless user experience.
API Communication: The Flutter app makes HTTP requests to the .NET Core API using REST conventions. Requests include JWT tokens for authentication and receive JSON responses containing products, favorites, orders, and user data. This separation of concerns allows both layers to evolve independently while maintaining clear communication contracts.
The project progressed through distinct phases of planning, design, implementation, and refinement.
Defined project scope, features, and technical architecture for an eCommerce mobile platform.
Created wireframes and user flows to map out the application structure.
Designed polished screens in Figma with colors, typography, spacing, and interactions.
Implemented Figma designs as functional Flutter screens with state management.
Set up SQL Server, Entity Framework Core, and data access patterns.
Built .NET Core REST APIs, services, repositories, and database schema.
Connected Flutter app to backend APIs via REST and JSON communication.
Implemented JWT authentication and authorization, DTO validation, and centralized exception handling.
Tested APIs with Postman, ran unit tests, validated database interactions.
Resolved integration and runtime issues, verified key workflows, and stabilized the application.
This project demonstrates full-stack eCommerce development: from UI/UX design in Figma through Flutter mobile implementation, to a professional backend with .NET Core, REST APIs, JWT security, Entity Framework Core data access, SQL Server persistence, comprehensive testing, and production stabilization.
Software Development Internship — 3 Months with
Cayan Solutions
The project provided hands-on exposure to requirements analysis, design systems, mobile development, backend architecture, database design, API development, authentication, security practices, testing methodologies, debugging workflows, and production deployment considerations—representing a complete software development lifecycle.