A web app for creating, sending, and keeping track of invoices
Features
- Responsive layout to fit all device sizes
- Hover states for all interactive elements
- Loading spinners are shown during any pending server request
- Users may choose a dark or light theme appearance
- Users are able to create, save, send, update, and delete invoices
- Upon sending an invoice, a PDF copy of the invoice is generated server-side and sent to the client (the 'bill to' email address) as an attachment
- Users are able to download PDF files of each invoice
- Invoice form validation (server-side and client-side)
- Notifies users about errors and/or missing fields upon invoice form submissions
- Toast messages appear briefly at the bottom of the screen to notify the user whether or not a requested action was completed successfully
- Users are able to filter their invoices by status (paid, pending, draft)
- Paginated invoice list
- Incomplete invoices are not allowed to be sent, and remain as drafts until complete
- Users are authenticated with an OAuth strategy (GitHub or Google)
- Unauthenticated users who have already registered may enter their email address and receive a sign-in link by email