New post on /r/flutterdev subreddit:
Advice & Recommendations on how to approach an app idea
Hello Everyone,I'm not sure if this is the right place to post something like this, but here I go.For the scheduling/calendar service, should I look to integrate this with various APIs like google calendar, outlook, etc or just build this in, Like I think flutter has a calendar widget that I can build on top of? What's the best practice for this?I don’t want to give too many details away about my idea, but basically, I want to create a mobile application where potential users who are barbers/hairstylist will be able to display their current portfolio of work as well as for other users to request their services from the barbers/hairstylist on the platform. For reference, let’s just classify the users of this product into two categories, Business users, Customer users. Business users are those who are barbers/hairstylists that display their work. Customer users are those who request services from business users.The following are some features I would want for a minimum viable product:Provide customer users the ability to search for business users from where they can request their services from.Provide customer users the ability to view the business users’ portfolios on recent work they have done.Provide customer users the ability to pay for business users’ services in the appProvide customer users the ability to rate the business users servicesProvide customer users the ability to schedule appointments based on the business user’s scheduleProvide business users the ability to register as a barber/hairstylistProvide business users the ability to upload photos of their portfolio to be displayed to customer usersProvide business users the ability to create a schedule that will show when they are available to be booked.Provide the ability for business users and customer users to communicate through direct message in the appPlease feel free to suggest if these are solid features to have as an MVP.I’ve broken down the system to be composed of the following services:Search service (find business users on the platform)Portfolio service (Display business users work on their account profiles)Geolocation service (to pull up business users within their location)Scheduling service (customers booking appointments through the schedule)Notification service (send notifications/updates of when their service is available)Payment service (Process payments for both users )What are the technologies, patterns, and practices that would make this a scalable system architecture?For the mobile application, I’m planning to use Flutter and dart. How should I approach implementing identity and authorization? I’m hesitant to use Firebase or any NoSQL database because dealing with ids and associating those ids with various records that belong to the account holder can be troublesome to deal with. On the other hand, Firebase has great integration with Flutter since it's a google product. What about a relational database? Will this scale well? Does it have its purposes in mobile applications?For GeoLocation integration, I was planning on using google maps API, is this the recommended approach, should I look into another tool, library, API? What's the best practice for this?For the payment processing component, I was planning on using Stripe, any recommendations here? What's the best practice for this?For the scheduling/calendar service, should I look to integrate this with various APIs like google calendar, outlook, etc or just build this in, Like I think flutter has a calendar widget that I can build on top of? What's the best practice for this?What database technology should I use to store photos for the users portfolio?As my backend, I’m planning on using java to receive requests from the mobile client. I’m also planning to have this part of the architecture deployed on the cloud.I know I haven’t thought of everything about the system…