GOkwori / AccountSphere

AccountSphere is a comprehensive banking app designed for efficient account management and insightful financial reporting. It offers tools for account creation, updates, and analytics, using Python Flask, a dynamic front-end, and a structured database for streamlined financial operations.
1 stars 1 forks source link

AccountSphere

AccountSphere shown on a variety of screen sizes

Visit the deployed site: AccountSphere

Welcome to AccountSphere! A financial workflow management platform designed to streamline and simplify your organisation's accounting, product management, user administration, and more.

In today's complex financial landscape, AccountSphere offers a comprehensive solution that provides effortless control over your financial workflows. Whether you're managing accounts, overseeing products, or maintaining user roles and permissions, our platform is tailored to meet your specific needs.

Explore a feature-rich environment where you can:

AccountSphere empowers you to manage your financial workflows seamlessly in one integrated platform. Embrace smarter financial management today!

GitHub Last Commit GitHub Languages HTML CSS JavaScript Python Contributors Testing


CONTENTS


AccountSphere Banner

User Experience (UX)

Project Goal

The primary goal of AccountSphere is to deliver a comprehensive, intuitive financial management platform that simplifies complex financial processes for businesses and organisations. This project is designed to enhance productivity by integrating account management, product management, user role management, and news dissemination into a single, seamless platform. By leveraging modern web technologies and best practices, AccountSphere aims to offer dynamic interaction, data-driven insights, and a customisable user experience that adapts to the unique needs of each organisation.

Through AccountSphere, we strive to empower users to effectively manage their financial workflows, improve operational efficiency, and make informed decisions quickly and accurately. The platform is designed not only to streamline daily tasks but also to provide strategic insights that help businesses grow and adapt in an ever-changing financial landscape.

Target Audience

The target audience of AccountSphere is diverse, encompassing various professionals and individuals who require efficient financial management tools tailored to their unique needs. This platform is crafted to accommodate Account Officers, Administrators, Product Managers, News Analysts, and first-time users, ensuring each finds features and functionalities aligned with their roles and goals. By addressing the distinct requirements of each user group, AccountSphere provides a seamless experience that empowers users to effectively manage their accounts, monitor trends, and optimise their workflows.

Account Officers:

Administrators:

Product Managers:

News Analysts:

First-Time Users:

Business Owners:

User Goals

First Time User Goal

For first-time users of AccountSphere, the objective is to provide an intuitive, welcoming interface that demystifies financial management. The platform aims to deliver a clear, straightforward onboarding process that helps new users quickly understand the core functionalities and how they can benefit their specific roles. From setting up an account to navigating through the various management modules, first-time users will find guidance and support at each step.

The design and structure of AccountSphere are crafted to reduce the learning curve and enhance user confidence, ensuring that users can start managing their financial tasks efficiently from their first login. The system is designed to offer quick wins for new users, such as easy setup of financial accounts or user roles, encouraging continued use and deeper exploration of the platform's capabilities.

Account Officer Goal

For Account Officers, AccountSphere aims to streamline their daily tasks by providing a centralised platform where they can efficiently manage client accounts. The platform's goal is to empower Account Officers with the tools they need to easily create, update, and monitor financial records while ensuring accuracy and compliance. Features like search functionality, detailed transaction histories, and customisable reports allow Account Officers to quickly access the information they need and identify opportunities or potential issues. With AccountSphere, Account Officers can deliver a high level of service while minimising administrative overhead.

Administrator Goal

Administrators are focused on maintaining system integrity and ensuring that the platform runs smoothly for all users. AccountSphere's goal for Administrators is to offer comprehensive management controls that enable them to handle user roles, permissions, and data security with precision and ease. Administrators can manage user access, monitor system usage, and enforce compliance policies directly within the platform. By providing a robust set of administrative features, AccountSphere helps Administrators maintain security, data integrity, and smooth operations while reducing complexity.

Product Manager Goal

For Product Managers, AccountSphere aims to provide a holistic view of product lifecycles, enabling them to oversee product development, track market trends, and make data-driven decisions. The goal is to help Product Managers efficiently manage their product portfolios by centralising product information, facilitating collaboration, and providing in-depth analytics. They can easily update product details, monitor sales data, and identify opportunities for product optimisation or expansion. AccountSphere helps Product Managers translate insights into actionable strategies that align with broader business objectives.

News Analyst Goal

AccountSphere's objective for News Analysts is to simplify the process of collecting, organising, and analysing industry news and internal updates. The platform is designed to help News Analysts efficiently curate and disseminate relevant information to different teams, ensuring everyone stays informed about key developments. Analysts can track trends, identify emerging risks, and provide stakeholders with timely, accurate insights. AccountSphere also supports collaborative feedback, enabling Analysts to refine their news content based on user engagement and strategic goals.

Business Goal

The overarching business goal of AccountSphere is to establish itself as a leader in the financial management software industry, recognised for innovation, reliability, and user satisfaction. By delivering a high-quality, scalable solution that meets the diverse needs of businesses across industries, AccountSphere aims to expand its market share and foster a loyal user base.

The business strategy includes continuous improvement based on user feedback, leveraging cutting-edge technology to enhance features, and maintaining rigorous security standards to protect user data. Through strategic partnerships, targeted marketing, and exceptional customer support, AccountSphere plans to grow its presence globally and help organisations around the world achieve financial clarity and success.

User Stories

First Time User Stories

Account Officer User Stories

Administrator User Stories

Product Manager User Stories

News Analyst User Stories

Design Choices

Colour Scheme

The colour scheme of AccountSphere has been deliberately selected to establish a professional, clear, and appealing interface that enhances usability and visual aesthetics. The primary colours used throughout the platform include shades of grey and vibrant highlights, which not only create a modern look but also aid in distinguishing between different UI elements effectively. Here’s a detailed breakdown of the colour palette:

Colour Scheme

This carefully curated colour scheme leverages a mix of neutral tones and vibrant accents to create a professional, engaging, and accessible platform. The deliberate use of white and slate blue ensures that essential information stands out, while the uniformity across the platform provides a seamless experience for users navigating through different sections of AccountSphere.

Typography

For the typography of AccountSphere, the Roboto font from Google Fonts was selected to align with the platform's modern and professional aesthetic.

Colour Scheme

The use of Roboto throughout AccountSphere reinforces the platform's focus on streamlined functionality and effective communication. This font choice complements the platform's focus on financial management and business operations, providing a professional yet approachable appearance that aligns with the target audience's needs and preferences.

Imagery

The imagery used in AccountSphere enhances the user experience by creating a visually engaging and professional platform that aligns with its financial management focus. The visual elements have been carefully curated to reflect the platform's branding and thematic focus, providing a cohesive and appealing atmosphere for users.

Wireframes

The development of AccountSphere began with the creation of detailed wireframes that outlined the structure and layout of each page. These wireframes served as the visual blueprint for designing a user-friendly interface that ensures a seamless experience across the platform.

Each wireframe was crafted with careful attention to user experience, emphasising intuitive navigation and efficient workflows that align with the goals of various user roles, including administrators, account officers, product managers, and news analysts.

Login Page Wireframe

The login page wireframe shows a streamlined, user-friendly design focused on getting users into the system efficiently. It includes fields for username and password, as well as buttons for submission and navigation to the registration page for new users.

Login Page Wireframe

Profile Page Wireframe

The profile page wireframe provides a structured layout where users can view and manage their personal information. This design is optimized for ease of navigation, allowing users to edit their profile, view their recent activities, and access different management features.

Profile Page Wireframe

Account Management Page Wireframe

The account management page wireframe illustrates a comprehensive view where Account Officers can manage user accounts. The interface allows for viewing detailed account information, performing search operations, and initiating account modifications.

Account Management Page Wireframe Account Management Page Wireframe

AD_Group Management Page Wireframe

This wireframe details the Active Directory group management page, providing administrators with an intuitive interface to manage user groups and their permissions. The layout facilitates easy group creation, editing, and deletion.

AD_Group Management Page Wireframe AD_Group Management Page Wireframe

Product Management Page Wireframe

The product management page wireframe provides Product Managers with a clear overview of all products. They can update product details, analyse performance, and coordinate with other teams to optimise the product lifecycle.

Product Management Page Wireframe Product Management Page Wireframe

User Management Page Wireframe

These wireframes depict the user management page, where administrators can efficiently manage user roles and permissions. The design ensures ease of adding new users, editing their roles, and handling deletions while maintaining data integrity.

User Management Page Wireframe User Management Page Wireframe

These wireframes guided the design process to ensure that AccountSphere provides a visually consistent and efficient user interface that aligns with the platform's overall goals.

Flowchart

To visualise the user journey and functionality of AccountSphere, detailed flowcharts were developed. These flowcharts outline the interactions between the different components of the platform, demonstrating how users navigate through various features and perform essential tasks.

Each flowchart focuses on a specific aspect of AccountSphere, capturing the logical flow of user actions and system responses, ensuring that the platform operates smoothly and efficiently. The flowcharts serve as valuable guides for understanding the system's architecture and how different roles—such as administrators, account officers, product managers, and news analysts—interact with the platform.

Authentication Flow

The authentication flow diagram outlines how users gain access to AccountSphere. It covers the steps for login and registration, ensuring secure access and proper onboarding.

Authentication Flowchart

Account Management Flow

This flowchart shows how Account Officers handle account creation, updates, and deletions. It provides a streamlined approach for managing client data and maintaining accurate records.

Account Management Flowchart

Product Management Flow

The product management flow outlines how Product Managers oversee product lifecycles. It emphasises efficient coordination between product development, market trend analysis, and portfolio optimisation.

Product Management Flowchart

News Management Flow

The news management flowchart displays how News Analysts curate and disseminate relevant information. It demonstrates the steps involved in collecting, organising, and sharing important updates with stakeholders.

News Management Flowchart

Administrator Flow

This diagram illustrates the responsibilities of Administrators in maintaining system integrity. It highlights their role in managing user roles, permissions, and ensuring compliance and data security.

Settings Flowchart

These flowcharts illustrate the interactions between users and the system, highlighting key functionalities and decision points within AccountSphere. They ensure that the platform is designed to meet user needs effectively while maintaining robust security and operational efficiency.

Entity-Relationship Diagram

The Entity-Relationship Diagram (ERD) provides a visual overview of the relationships and data structure within the AccountSphere application. This diagram illustrates how different data entities such as users, groups, accounts, products, and news items interact with each other, helping to clarify the system's architecture.

The ERD is crucial for understanding how data is organised, stored, and accessed within the application. Each entity corresponds to a table in the database, with attributes representing the columns of that table. Relationships between entities, indicated by lines, depict foreign key constraints, showing how data is linked together.

In this diagram:

ERD

This diagram not only showcases the logical structure of the database but also provides insight into how CRUD operations are performed across different modules in the application. Understanding this structure is essential for maintaining, enhancing, and scaling the application over time.

Role-Based Access Control

The application employs Role-Based Access Control (RBAC) to manage user permissions and ensure that only authorised users can access certain functionalities. This approach enhances security by limiting access to sensitive operations based on the user's role within the system.

Roles Defined

RBAC Implementation

RBAC is implemented using a decorator function, role_required, which checks if the currently logged-in user has the required role(s) to access a specific route. If the user does not have the necessary permissions, they are redirected to the profile page with a flash message indicating insufficient permissions.

Administrator Role Protection

To protect the administrator role from being selected by public users during registration, it is excluded from the list of roles presented in the registration form. This is done by filtering out the 'Administrator' role from the available options.

Features

The AccountSphere web application provides a comprehensive solution for financial management, offering a range of interactive features that cater to different user roles for ease of use and enhanced productivity.

Responsive Pages

All Pages Feature:

Specific Role-Based Features:

These features collectively contribute to a robust financial management platform that addresses the unique needs of different user roles, ensuring accurate, efficient, and secure workflows.

Login Page

Login Page

The login page offers a secure and user-friendly gateway to AccountSphere:

Registration Page

Registration Page

The registration page is designed to provide a seamless onboarding experience for new users:

Profile Page

Profile Page

The Profile Page in AccountSphere serves as a centralised dashboard for users, providing them with immediate access to a wide array of features and functionalities tailored to their roles within the platform:

Account Management

Account Management Page

The Account Management Board in AccountSphere enables Account Officers and other relevant roles to efficiently oversee client accounts and manage key financial data.

Active Directory Groups

AD Group Management Page

The AD Group Management Page in AccountSphere offers Administrators an organised interface for managing Active Directory groups efficiently.

News Board

News Board

The News Board page in AccountSphere serves as a centralised hub for keeping team members updated with relevant articles and internal announcements.

Product Management

Product Management Page

The Product Management page in AccountSphere provides a comprehensive overview of the products available and allows efficient management for Product Managers.

User Role Management

User Management Page

The User Board in AccountSphere allows administrators to manage user accounts effectively through various functionalities.

Password Reset Page

Password Reset Page

The Password Reset page provides users with a secure way to change their passwords directly in AccountSphere.

Log Out Functionality

The log-out feature ensures secure exit from AccountSphere:

404 Page

404 Page

The 404 error page provides a user-friendly way to handle navigation issues:

Future Implementations

AccountSphere is committed to continuous improvement and user-centric enhancements. Here are some of the future implementations planned to enrich the platform's capabilities and user experience:

Advanced Analytics Dashboard

Mobile Application

Integration with External Financial Services

AI-Driven Insights for Account Management

Customisable User Interface

Enhanced Security Features

Multi-language Support

Accessibility

AccountSphere prioritises accessibility to ensure an inclusive and user-friendly platform. We strive to create an environment where all users, regardless of their abilities or disabilities, can effectively use the application. Here are some key accessibility features and considerations:

Semantic HTML

Keyboard Navigation

Contrast and Color Choices

Form Accessibility

Text Resizing and Scaling

Assistive Technology Compatibility

Technologies Used

The development of AccountSphere involves a range of modern web technologies and software tools, ensuring a robust, secure, and user-friendly platform for financial management. Below is a detailed overview of the key technologies and tools utilized in creating AccountSphere:

Languages Used

HTML The structural foundation of our application, used to build the framework and content layout of the web pages.
CSS Enhances the presentation of our web application, controlling the layout, colors, and fonts to ensure an engaging and adaptive user interface.
JavaScript Powers the dynamic aspects of AccountSphere, enabling interactive elements and real-time functionality without the need for page reloads.
Python Utilized for server-side logic, including request handling, data manipulation, and interacting with the database.

Frameworks, Libraries & Programs Used

Deployment & Local Development

Deployment

AccountSphere is deployed using Heroku, a cloud platform that enables developers to build, run, and operate applications entirely in the cloud.

To deploy the site using Heroku:

  1. Login (or signup) to Heroku.
  2. From the dashboard, create a new app by selecting "New" -> "Create new app."
  3. Give your app a name (must be unique) and select the region closest to your location.
  4. Once the app is created, connect your app to your GitHub repository:
    • Go to the "Deploy" tab in your Heroku dashboard.
    • Select "GitHub" as the deployment method.
    • Connect to GitHub by entering your GitHub account credentials.
    • Search for the repository name and click "Connect".
  5. Configure environment variables under "Settings" -> "Reveal Config Vars". Set keys like SECRET_KEY, DATABASE_URL, etc.
  6. Go back to the "Deploy" tab and scroll down to "Manual deploy".
    • Choose the branch you want to deploy (usually "main" or "master").
    • Click "Deploy Branch".
  7. After deployment, Heroku will give you a URL to access your deployed application.
  8. Click on "Open app" in the top right of the dashboard to view your deployed site.

Local Development

How to Fork

To fork the repository:

  1. Log in (or sign up) to GitHub.
  2. Navigate to the repository for this project on GitHub.
  3. Click the "Fork" button in the top-right corner of the page.

How to Clone

To clone the repository:

  1. Log in (or sign up) to GitHub.
  2. Navigate to the repository for this project on GitHub.
  3. Click on the "Code" button, then choose to clone via HTTPS, SSH, or GitHub CLI, and copy the URL provided.
  4. Open your terminal.
  5. Change the current working directory to the location where you want the cloned directory.
  6. Type git clone, then paste the URL you copied earlier.
  7. Press Enter to create your local clone.

Testing

For a comprehensive overview of all testing conducted during the development of AccountSphere, please refer to the Testing.md file. This document includes detailed test cases, results, and methodologies used.

Solved Bugs

The development of AccountSphere involved identifying and resolving several bugs to enhance functionality and user experience. Below is a table detailing some of the notable bugs encountered and the fixes applied:

No Bug Description Fix Applied
1 Form submission error Users experienced form submission issues on the account creation page due to incorrect form data validation. Corrected the form validation logic to ensure accurate data processing.
2 Login redirect error After successful login, users were not redirected to their profile page. Implemented a redirect to the profile page upon successful authentication.
3 Database connection timeout The application experienced frequent database timeouts. Optimised database queries and revalidated database connection settings.
4 Responsive layout issues Some pages were not displaying correctly on mobile devices. Applied additional responsive CSS fixes to ensure compatibility across all devices.
5 Search functionality not working The search feature in user management was returning incorrect results. Refined the search algorithm to accurately filter and display results based on user queries.
6 Security vulnerability in user session A security vulnerability was discovered that could allow an unauthorised user to access session data. Enhanced session management and implemented additional security checks.
7 Missing error messages Error messages were not displayed to the user on failed login attempts. Added error handling to catch and display appropriate feedback messages to the user.
8 Product deletion error Users were unable to delete products due to a foreign key constraint error. Adjusted the database schema to properly handle deletions with cascade rules.
9 Group management access rights Non-administrative users were able to access and modify group settings. Revised access controls to restrict group management functionalities to administrators only.

These fixes have significantly improved the stability, security, and usability of AccountSphere, ensuring a reliable and efficient experience for all users.


Credits

Code References

Web Frameworks and Libraries

Tutorials and Guides

Design and Media

Database and Tools

Miscellaneous Tools

Acknowledgements