I have a gatsby project I'm working on. The front end is pretty much done.
However, I need a firebase (or AWS) backend to store my user data - I'd love to work with someone who has integrated firebase to gatsby/React before. I need to accept payments and store various types of user data. You'll need mostly backend experience but some front end React experience.
What I'm looking for is a minimal front end solution that has the ability to login via a pop-up on the app's homepage, not on a separate page. Login of course with social providers (firebase makes this easy - maybe AWS makes it simpler? But I'll need convincing) and email. Firebase handles all the user management, so I'll just need this to be connected to firebase and work robustly.
I'm not looking for any design work, I just want working code with bootstrap preferably - I'll integrate with my front end codebase as after the first phase of our work together is done.
I will provide a stripped down repo (maybe just a folder structure) of my project so you can keep the code organized in a specific - more maintainable way :)
I'm using both functional components/hooks and good old react class components in this app, so I'm happy with either. Hooks will be my preference as that's future proof.
I also use atomic design principles to organize my code.
The requirements are as follows:
1. Please, NO REDUX lol.
2. Documentation x a million. Not just auto-generated headers in components, but meaningful descriptions of functions and classes.
3. There is a free version and paid version of the app. The free version and paid version are both the same component - I will be passing in props to the paid app to toggle paid features. Basically, a free user can view the app, to be a paid user, you need to be able to create an account, and then subscribe to the app either monthly or yearly (preferably, using Stripe). Naturally, the app should catch when a user is free, has account but not paid subscription fee, paid fee, etc etc.
4. A free user has access to create data - but this data will be stored in local storage, but when successfully subscribed, data is transferred to their account.
5. A free user has app settings that I currently store in local storage. Once the user creates an account, the data in local storage also needs to be moved to the users account.
6. Functions with clear documentation on use, to allow me to communicate with every backend service for the app. So, a function for CRUD functionality to a user object, functions for payments, functions for saving various data to the database, etc.
7. Also, I'll need some logging to be enabled. AWS has a few different logging tools, select one that will show issues on the backend (and possibly the front end).
8. Users can search all their data they store (including settings) with auto suggesting results.
9. Of course, everything should be api driven with security in mind. So I expect .env variables to be used for sensitive information.
There are 4 types of user data for now (I need this to be able to be extended) that need to be stored in the database:
1. User settings
2. User profile info - ideally, this should be gotten from the social auth api and will not need to be stored in the database.
3. Subscription info - right now, I only need free and paid users. I want the database to allow free, paid, and any other subscription types. So it should be easily extensible.
4. User data (in development) - A paid user can create a note (assume this data is html data), create a reminder, create a voice note, and make a voice search of either all their data, or voice search to the web. I want all this data stored.
5. User History, I want any modified user data and user subscription data to be stored in a database. I want this data query-able from a function so I can show it to the user in a history page.
Wow, that was a lot to write. But I can provide even more information as needed.
I look forward to working with you.