Randevum Yanımda
A booking platform that connects customers and businesses
A two-role Flutter app where customers find businesses in categories such as dental, health, vet, gym, barber, beauty and massage and book appointments, while owners manage appointments, services and messaging, plus a web panel for businesses.
- Period
- Mar 2026 – Aug 2026
- Role
- Sole developer · Flutter and .NET
- Status
- Live on the App Store
- Platforms
- iOS · Android · Web
Overview
On the customer side there is business discovery, a map, business details, booking, my appointments and live chat with the business. On the business side there is a calendar, day details, appointment confirmation and rescheduling, slot packages, the business profile and conversations.
Chat is real-time over SignalR, and notifications arrive through Firebase Cloud Messaging. A separate ASP.NET Core MVC panel lets businesses manage appointments, the calendar and messages from the web.
I also built the ASP.NET Core API behind the app: Clean Architecture, CQRS/MediatR, FluentValidation, EF Core, Repository/Unit of Work, JWT, rate limiting, Swagger, health checks, background services and Docker.
Highlights
- Two-role app with separate customer and business shells (GoRouter StatefulShellRoute)
- Live chat over SignalR and push notifications through FCM
- Business discovery on a map (Google Maps, Geolocator)
- A Dio interceptor that refreshes tokens automatically
- Either<Failure, T> error handling with localized backend error codes
- Premium membership groundwork (RevenueCat)
Architecture
Three-layer Clean Architecture: core (interfaces, models), infrastructure (API services, session) and presentation (screens, BLoCs, routing). Dependencies are registered by hand with GetIt.
- PresentationScreens + view mixinsBLoC / CubitGoRouter shells
- InfrastructureDioApiServiceAuthInterceptorSecure session storage
- CoreInterfacesModelsFailure types
- PlatformShared ASP.NET Core Web APISignalR /chatHubBusiness web panel (MVC)
Engineering notes
- Every screen follows the same layout: the screen, a view mixin, a bloc/cubit and a components folder.
Screens
Screenshots coming soon