I want to build a mobile app for tree planting using React Native + .NET 6 + AWS
The app will basically provides that;
Organizations will offer plants (like a product). Donors will buy these plants.
Both Organization & Donors should be able to;
- register/Login via e-mail and password
- register/Login via Google SSO
- update their own profile page (and settings if needed)
- receive Welcome e-mail after registration
- bypass login page if selected "Remember me" checkbox in the previous signin.
- reset their password via "Forget password" (send random pin number in e-mail to reset password)
Donors should be able to;
- list all organizations
- search organizations by text
- display an organization's profile (Name, Logo, Breif Information, Contact Person Name, Contact Person E-mail, Location, Number of plantations by plant name, list of all donations and list of all offered plants (with plant name, image, and price)
- display another donor's profile page (Name, Image, Total number of plantations, list of all donations)
- buy (one or multiple) plants using credit card
- send real-time messages to organizations
Organizations should be able to;
- create/delete/update offered plants
- list all donations and payments they have receieved
- receive push notification after a donor buy a plant
Some Technical requirements
- Use React Native for frontend.
- This application will be released on App Store and Google Play, so the application should be compatible both in terms of design and technical specifications for iOS and Android mobile devices.
- Design dockerized .NET 6 web api microservices (Preferably an Api gateway and 4 microservices; IdentityApi, PaymentApi, CatalogApi, MessagingApi). Each api should have seperate database
- Do not use AWS Cognito authentication
- Store all uploaded images in AWS S3.
- For message queueing, use RabbitMQ in development and Amazon MQ or SQS in production
- For logging, use ELK in development and aws cloudwatch in production
- For database, use postgresql.
- For realtime Donor-Organization messaging, use SignalR
- For payments, use craftgate's apis. [login to view URL]
- Write unit tests and integration tests as well
- Write 2 detailed documents (1)to run services and app on local machine, (2) deploy to AWS