7-bank-project/4-state-management/assignment.md
Your banking app now has solid state management and data persistence, but it's missing a crucial feature that real banking apps need: the ability for users to add their own transactions. In this assignment, you'll implement a complete "Add Transaction" dialog that integrates seamlessly with your existing state management system.
This assignment brings together everything you've learned in the four banking lessons: HTML templating, form handling, API integration, and state management.
By completing this assignment, you will:
Create an "Add Transaction" button on your dashboard page that users can easily find and access.
Requirements:
Choose one of these two approaches for implementing your dialog:
Option A: Separate Page
Option B: Modal Dialog (Recommended)
hidden property or CSS classesEnsure your dialog meets accessibility standards for modal dialogs:
Keyboard Navigation:
Screen Reader Support:
Design an HTML form that collects transaction data:
Required Fields:
Form Features:
Connect your form to the backend API:
Implementation Steps:
Update your dashboard with the new transaction:
Integration Requirements:
API Endpoint Details: Refer to the server API documentation for:
Expected Result: After completing this assignment, your banking app should have a fully functional "Add Transaction" feature that looks and behaves professionally:
Functional Testing:
Accessibility Testing:
| Criteria | Exemplary | Adequate | Needs Improvement |
|---|---|---|---|
| Functionality | Add transaction feature works flawlessly with excellent user experience and follows all best practices from the lessons | Add transaction feature works correctly but may not follow some best practices or has minor usability issues | Add transaction feature is partially working or has significant usability problems |
| Code Quality | Code is well-organized, follows established patterns, includes proper error handling, and integrates seamlessly with existing state management | Code works but may have some organization issues or inconsistent patterns with the existing codebase | Code has significant structural issues or doesn't integrate well with existing patterns |
| Accessibility | Full keyboard navigation support, screen reader compatibility, and follows WCAG guidelines with excellent focus management | Basic accessibility features implemented but may be missing some keyboard navigation or screen reader features | Limited or no accessibility considerations implemented |
| User Experience | Intuitive, polished interface with clear feedback, smooth interactions, and professional appearance | Good user experience with minor areas for improvement in feedback or visual design | Poor user experience with confusing interface or lack of user feedback |
Once you've completed the basic requirements, consider these enhancements:
Enhanced Features:
Advanced Integration:
These optional features will help you practice more advanced web development concepts and create a more complete banking application!