Overview
This software development project is designed to track, record, and report financial information, and it plays a critical role in managing the financial health of a large or small business or organization. The project aims to develop a web-based app and a mobile based app for both the android and iOS. The project will involve designing and developing a user-friendly interface that will allow employees to access and manage organization finances. For this case study, we will be focusing on the mobile app interface of this project.
Flow diagram of the mobile app
Background
Goals
- Track, record, and report financial information
- Present organizations financial state in a visually aided way.
- Provide real-time analytics and insights to better understand organizations financial state.
- Develop a scalable and flexible system that can adapt to organizations evolving needs.
Scope
- The software will cover the following features:
- Manage profit, organizations will be able to know their total earnings in relation to various metrics including profit and loss.
- Manage cash, knowing how much left, how much is expected and how much is to be spent.
- Benchmark, helps the organization to set goals by comparing with other organizations within a benchmark group.
- Real-time analytics and insights
- Integration with already existing data
Timeline
The project is expected to take five months to complete, design and development, testing and implementation are expected to go on simultaneously. It is a pipeline format.
Solutions
Description of the software developed
The software developed in this project is a mobile based financial management system designed to provide visual, simplified and organized financial insight of an organization. The system allows users to track financial levels and statistics in real-time and generate reports to identify trends and optimize finances.
The software is built using a mobile architecture, with a responsive front-end and a robust back-end database. The front-end is built using React Native, and is designed to be intuitive and user-friendly. The back-end is built using AWS Amplify (serverless tech) with RESTful APIs to connect the front-end to the backend.
The software has some key features like direct data import, charts for better visualization, manage multiple companies in one account, profit and loss indicators, benchmark. The software also includes a range of security features, such as user authentication and access controls, to ensure data privacy and prevent unauthorized access.
Overall, the software developed in this project provides businesses with a powerful, flexible, and easy-to-use financial management solution that can help them improve their operations and increase efficiency.
Features and functionality of the software
This software project comes with a wide range of features and functionalities designed to make financial management easier and more efficient for organizations. Some of the key features include:
- Data Import: The software allows users to import already existing data from quickbooks and this data is automatically sorted and organized upon arrival.
- Charts: The software also provides charts to visually display financial data and can be toggled between the previous month and the last 12 months from the previous month.
- Multiple Companies: The software also allows users to add and manage data for multiple organizations in one account.
- Multiple Users: The software also allows users to add and manage users for multiple organizations in one account. These users can also be roles of “Admin” or “User”, by default it is “User”.
- User authentication and access controls: The software includes a range of security features, such as user authentication and access controls, to ensure data privacy and prevent unauthorized access.
- Mobile accessibility: The software is designed to be responsive and mobile-friendly, allowing users to access financial data and manage from any mobile device.
Overall, the features and functionality of the software developed in this project provide businesses with a powerful and flexible tool for managing finance, and optimizing operations.
How the solution met the project goals and objectives
The software was designed to help organizations improve their financial management processes and increase efficiency. The system was built with the following goals and objectives in mind:
- Track, record, and report financial information
- Present organizations financial state in a visually aided way
- Provide real-time analytics and insights to better understand organizations financial state.
- Develop a scalable and flexible system that can adapt to organizations evolving needs.
The solution met these project goals and objectives in several ways. First, the software tracks and monitors quickbooks for data update and in turn shows that updated information in the app. This is possible through AWS App Sync and AWS Dynamo DB.
Second, the software provides charts that help you easily spots increments and declines in organization finances in different categories like revenue, expenses, gross margin etc. In addition to the charts, there are also indicators that point upward or downward in each category depending on the state of finances for that category.
Third, the system’s user authentication and access controls provided a layer of security that helped to ensure data privacy and prevent unauthorized access. This is possible through the AWS cognito and some other javascript libraries.
Finally, software is scalable and flexible, even if the users of this software suddenly tripple over-night, the app usage will still be seamless and this is one of the major reason for using the serverless tech, AWS Amplify. Scaling is automatically handled by AWS.
Overall, the system developed in this project will be highly effective in meeting the project goals and objectives. It provided businesses with a powerful and flexible tool for managing finances, optimizing operations, and help to increase efficiency and productivity.
Implementation Strategy
- Onboarding: This is a briefing session of team members on what the mobile app is all about, the structure and the different solutions it is providing and how each team member is to contribute to the success of the project
- Design: The user interface and user experience designs are is designed by the UI/UX designers, vetted by the project manager and then shipped off to the next stage, development.
- Development and User Acceptance Testing (UAT): The mobile app is built by the software development team according to the specifications of the design stage and tested within the development and then shipped off to the next stage, pilot testing.
- Pilot Testing: The pilot test will involve testing specific features and functionality of the app at that sprint, data accuracy, and integration with other systems. When all the features are complete, it is marked completed and sent for roll out.
- Rollout: The final step is to rollout the stable mobile app to the app store and play store. This will involve providing ongoing support, monitoring system performance, and addressing any issues or concerns that arise.
The implementation strategy is managed by a project team consisting of a project manager, risk analyst, software engineer’s team lead, and UI/UX team lead. The team will work closely with the clients to ensure a smooth implementation process.
Technology used
- Programming languages: The software is being built using React Native on the frontend for cross platform building (android and ios) and AWS amplify on the backend and Javascript – Node being the framework on AWS Amplify.
- Integrated Development Environment (IDE): Most of the software enginerers use Visual Studio Code to write, edit, and test the code, mostly because of its inbuilt git collaboration feature.
- Relational Database Management System (RDBMS): AWS Dynamo DB is being used to store and manage user and organization data. while GraphQL is used as the query language.
- Version Control: Git is used to manage code changes and collaborate with other developers.
- Project Management Tools: Jira is used to create the pipeline of activities, track progress, assign tasks, and collaborate with team members.
- Cloud Computing: Cloud computing services such as Amazon Web Services (AWS) is used to host the AWS Amplify Backend.
- Communication Tools: Communication tools such as Slack and Google Meet are used to facilitate collaboration and communication among team members. Also daily stand ups are organized to give updates on design, development and testing.
Challenges faced during implementation
- Changing Requirements: One of the biggest challenges during the implementation of this software is changing requirements. Stakeholders kept changing their minds or discovering new requirements during the first 2 months of development process, which can lead to delays, scope creep, and additional costs.
- Technical Issues: Technical issues such as integration problems were also challenging during the implementation phase. Another major issue was familiarity with AWS Amplify, Dynamo and App Sync, AWS serverless tools in general, most of the software engineers were initially not familiar with the AWS serverless tools.
Results
The software is still in development and UAT stages but so far, there is alot of satisfaction on the side of the clients.
Lessons Learned
- Communication is key: One of the biggest lessons learned from this project was the importance of effective communication. Clear and frequent communication between team members, stakeholders, and customers is essential to ensure that everyone is on the same page and that expectations are managed effectively.
- Agile development methodologies work: The team used an Agile development methodology and found that it was highly effective in managing changing requirements and delivering the project on time and within budget. The Agile approach allowed the team to adapt to changing customer needs and to make adjustments to the development process as needed.
- Testing is critical: The team learned that thorough testing is critical to ensuring the quality of the software. Regular testing helped to identify bugs and defects early in the development process, which allowed the team to address them before they became major issues.
- Prioritize security: The team learned that security is a top priority when developing software. Ensuring that the software is secure and that customer data is protected is essential to building trust with customers and maintaining the organization’s reputation.
- Plan for scalability: The team realized that planning for scalability is important when developing software. The software needs to be able to handle growth and increased traffic as the business grows, and this needs to be taken into account from the outset.
Overall, these lessons learned can be applied to future software development projects to ensure their success. Effective communication, Agile development methodologies, thorough testing, the use of metrics, prioritizing security, and planning for scalability are all important factors to consider when developing software.
Conclusions
This case study describes the development and implementation of a financial management system for an organization. The goal of the project was to improve financial management, increase efficiency, and drive revenue growth.
The project involved a cross-functional team of developers, designers, and risk analysts, who worked together to design and develop the software. The team used an Agile development methodology and a variety of software tools and technologies, including Javascript, React Native and AWS Amplify.
During the development process, the team faces a number of challenges, including tight deadlines and changing requirements. However, by adopting an Agile approach and regularly communicating with stakeholders, the team will be able to overcome these challenges and successfully deliver the project on time and within budget.
Overall, the software hopefully will be a success, delivering significant benefits to the organization and its customers. The project highlights the importance of effective communication, Agile development practices, and the use of metrics to measure the success of software development projects.