docs: add application goal and project setup instructions to documentation

This commit is contained in:
Peter Wood
2025-05-03 08:18:41 -04:00
parent 06dfbf9965
commit 79e3831004
2 changed files with 90 additions and 3 deletions

85
.github/APP_GOAL.md vendored Normal file
View File

@@ -0,0 +1,85 @@
# Application Goal
From a high level perspective, I want to build a web application that allows users to manage their financial transactions and institutions. The application should provide a user-friendly interface for users to create, update, delete, and view their financial transactions and institutions. It should also allow users to group their transactions by date or institution for better organization and analysis.
The application should be built using modern web technologies and should be self-hosted. It should also include authentication and authorization features to ensure that users can securely access their data. The application should be designed with scalability in mind, allowing for future enhancements and additional features.
The application should be easy to maintain and extend, with a focus on code quality and best practices. It should also include automated testing and continuous integration/continuous deployment (CI/CD) processes to ensure that changes can be made safely and efficiently.
The application should be well-documented, with clear instructions for installation, configuration, and usage. The documentation should also include information on how to contribute to the project and report issues.
The application should be designed to be user-friendly and accessible, with a focus on providing a positive user experience. It should also include features for data visualization and reporting, allowing users to gain insights into their financial transactions and institutions.
The application should be designed to be responsive and work well on a variety of devices, including desktops, tablets, and smartphones. It should also include features for data import and export, allowing users to easily transfer their data to and from other applications.
The application should be designed to be secure, with a focus on protecting user data and preventing unauthorized access. It should also include features for data backup and recovery, ensuring that users can recover their data in case of loss or corruption.
The application should be designed to be modular and extensible, allowing for the addition of new features and functionality in the future. It should also include features for user feedback and support, allowing users to report issues and request new features.
The application should be designed to be performant, with a focus on minimizing load times and optimizing resource usage. It should also include features for monitoring and logging, allowing developers to track performance and identify issues.
---
## Features
- User authentication and authorization using OAuth2
- User profile management
- Financial institution management (create, update, delete, view)
- Financial transaction management (create, update, delete, view)
- Grouping transactions by financial institution
- Grouping transactions by date
- Responsive design for desktop and mobile devices
- Data visualization and reporting features
- Data import and export features
- Data backup and recovery features
- Modular and extensible architecture
- User feedback and support features
- Monitoring and logging features
- Automated testing and CI/CD processes
- Well-documented codebase and user documentation
- Clear instructions for installation, configuration, and usage
- Code quality and best practices
- User-friendly and accessible design
- Performance optimization and resource usage minimization
- Support for recurring transactions and budgeting
- Allow users to set up recurring transactions for regular expenses or income
- Budgeting features to help users track their spending and savings goals
---
## Technical Requirements
I want to use the following technologies:
- **Frontend**: React, TypeScript, Tailwind CSS, Zod, Cors
- **Backend**: Node.js, Fastify
- **Database**: PostgreSQL, Prisma
- **Deployment**: Docker, Self-hosted
- **Authentication**: OAuth2
- **Testing**: Jest, React Testing Library
- **CI/CD**: GitHub Actions
- **Documentation**: Docusaurus
---
## User Stories
- As a user, I want to be able to create, update, delete, and view - financial institutions.
- As a user, I want to be able to view a list of financial institutions in - the system.
- As a user, I want to be able to create, update, delete, and view - financial transactions.
- As a user, I want to be able to view a list of financial transactions in - the system.
- As a user, I want to be able to view a list of financial transactions - grouped by financial institution.
- As a user, I want to be able to view a list of financial transactions - grouped by date.
- As a user, I want to be able log in using oauth2.
- As a user, I want to be able to log out.
- As a user, I want to be able to view my profile.
- As a user, I want to be able to update my profile.
---
## Out of Scope
---
## Open Questions
- What specific data visualization and reporting features do you want to include?
- What specific data import and export features do you want to include?
- What specific data backup and recovery features do you want to include?
- What specific user feedback and support features do you want to include?
- What specific monitoring and logging features do you want to include?
- What specific performance optimization and resource usage minimization techniques do you want to include?
- What specific security features do you want to include?
- What specific user experience and accessibility features do you want to include?