Amplify + React Invoicing System -- 2
Budget: $250 – $750 USD
I'm seeking a freelancer to develop a full end-to-end invoicing system using Amplify and React. This system should have a basic custom design, with the ability to process payments from clients automatically. On top of this, I would like the system to be able to track client profiles and integrate analytics into the invoicing process. My goals are to create an efficient and reliable invoicing system that my customers can easily use. The freelancer should have extensive knowledge of developing systems using Amplify and React.
Authentication should be handled with Cognito User Pools. The data should be exposed with GraphQL using authentication from the same pools. Each Cognito user should have access to the data they created.
The intention is to create a simple working system that can be expanded later. The design can be basic, but the system needs to be serverless with Amplify and React for front end. Most of all, the system needs to work.
The requirement is for a full project that can be deployed by pushing from the Amplify CLI, and builds through AWS CI/CD processes.
There are two types of users of the system:
- Regular User (identified by primary Cognito pool - sign up allowed from the login page) - can create Customers, Invoices and Payments, and access any data the user created/owns.
- Customer User (identified by secondary Cognito pool through a user created by a Regular User - can't create own account) - can view Invoices and Payments assigned to such user. These users would not authenticate by email as one person could be a Customer of multiple Regular Users, and could have multiple usernames.
Important data in the system:
- Each Regular User would provide their company details for invoicing purposes - Name, Address, Phone Number, Email, etc.
- Each Customer User would have their company details supplied by the owning Regular User.
- Invoices created for Customers have unique numbers per Regular User and sequential (not globally but per User). Invoices can be viewed through a publicly accessible link generated by the system - it needs to have some key or something so the URLs cannot be easily guessed. Regular Users can send emails to Customers with such links.
- Payments created for Customers have unique numbers per Regular User and sequential (not globally but per User).
Desired functionality:
- Once an Invoice is generated, the system should send its link to the Customer with SES. (PDF capability will be added later)
- Customer should be able to click on the link and have it open in a browser, and then have the option to pay the Invoice through Stripe. (Other payment methods to be added later)
- It should also be possible to manually assign a payment to an invoice from the portal (by the owning Regular User, not the Customer).
- Authentication data should be stored in Amazon Cognito, and Amplify should generate the backend
- All other data should be stored in DynamoDB.
Please ask if you need any further clarification.
Authentication should be handled with Cognito User Pools. The data should be exposed with GraphQL using authentication from the same pools. Each Cognito user should have access to the data they created.
The intention is to create a simple working system that can be expanded later. The design can be basic, but the system needs to be serverless with Amplify and React for front end. Most of all, the system needs to work.
The requirement is for a full project that can be deployed by pushing from the Amplify CLI, and builds through AWS CI/CD processes.
There are two types of users of the system:
- Regular User (identified by primary Cognito pool - sign up allowed from the login page) - can create Customers, Invoices and Payments, and access any data the user created/owns.
- Customer User (identified by secondary Cognito pool through a user created by a Regular User - can't create own account) - can view Invoices and Payments assigned to such user. These users would not authenticate by email as one person could be a Customer of multiple Regular Users, and could have multiple usernames.
Important data in the system:
- Each Regular User would provide their company details for invoicing purposes - Name, Address, Phone Number, Email, etc.
- Each Customer User would have their company details supplied by the owning Regular User.
- Invoices created for Customers have unique numbers per Regular User and sequential (not globally but per User). Invoices can be viewed through a publicly accessible link generated by the system - it needs to have some key or something so the URLs cannot be easily guessed. Regular Users can send emails to Customers with such links.
- Payments created for Customers have unique numbers per Regular User and sequential (not globally but per User).
Desired functionality:
- Once an Invoice is generated, the system should send its link to the Customer with SES. (PDF capability will be added later)
- Customer should be able to click on the link and have it open in a browser, and then have the option to pay the Invoice through Stripe. (Other payment methods to be added later)
- It should also be possible to manually assign a payment to an invoice from the portal (by the owning Regular User, not the Customer).
- Authentication data should be stored in Amazon Cognito, and Amplify should generate the backend
- All other data should be stored in DynamoDB.
Please ask if you need any further clarification.