Skip to content

🏦 Welcome to FinTrac, your all-in-one solution for modern online banking management!

Notifications You must be signed in to change notification settings

aliahadmd/FinTrac

Repository files navigation

Fintrac: Online Banking System Documentation

This document provides an overview of Fintrac, a Django-based online banking system. It covers the project's functionalities, code structure, and relevant files. Functionalities

Fintrac offers the following features:

  • User Authentication: Users can register, log in, and log out of the system.
  • KYC Registration: Users can submit their KYC (Know Your Customer) information for verification.
  • Account Management: Users can view their account details, including balance and transaction history.
  • Transfers: Users can send money to other Fintrac accounts using account numbers or IDs.
  • Payment Requests: Users can request payments from other Fintrac users.
  • Credit Card Management: Users can add, fund, withdraw from, and delete credit cards associated with their accounts.
  • Notifications: Users receive notifications for various activities, such as successful transfers, received payment requests, and credit card updates.
  • Admin Interface: An admin interface allows for managing users, accounts, transactions, and notifications.

Code Structure

The project follows a standard Django project structure with the following key directories and files:

  • main: The main project directory containing settings, URL configurations, and the manage.py script.
  • core: Contains core functionalities like views for the homepage, contact page, and about page.
  • userauths: Handles user authentication logic, including registration, login, and logout views.
  • account: Manages user accounts, KYC information, and dashboards.
  • templates: Houses HTML templates for various pages and functionalities.
  • static: Stores static files like CSS, JavaScript, and images.
  • requirements.txt: Lists the required Python packages for the project.
  • Dockerfile: Defines the Docker image for containerized deployment.

Relevant Files

Here are some of the essential files in the project:

  • main/settings.py: Contains project-wide settings, including database configuration, installed apps, and security settings.
  • main/urls.py: Defines the main URL patterns for the project, including URLs for core, userauths, and account apps.
  • core/views.py: Contains views for the homepage, contact page, and about page.
  • userauths/views.py: Handles user authentication logic, including registration, login, and logout views.
  • account/views.py: Manages user accounts, KYC information, and dashboards.
  • templates/account/dashboard.html: The main dashboard template displaying account information and recent transactions.
  • templates/transfer/transfer-confirmation.html: Template for confirming transfer details before finalizing the transaction.
  • core/models.py: Defines models for transactions, credit cards, and notifications.
  • account/models.py: Defines models for accounts and KYC information.

Additional Notes

The project utilizes the shortuuid package for generating unique IDs for accounts, transactions, and credit cards. The humanize package is used for formatting numbers and dates in a human-readable format. The project can be deployed using Docker for containerized environment. This documentation provides a high-level overview of Fintrac. For detailed information on specific functionalities and code implementation, please refer to the relevant files and comments within the code.

Fintrac: Functional Requirements

Based on the project overview, here are the functional requirements for Fintrac:

User Management:

  • Registration: The system should allow users to register with a username and email address.
  • Login: Users should be able to log in with their credentials securely.
  • Logout: Users should be able to log out of the system.
  • KYC Registration: Users should be able to submit their KYC information, including full name, date of birth, address, contact details, and relevant images for verification.
  • Account Activation: Accounts should be activated upon successful KYC verification.
  • Account Deletion: Users should be able to delete their accounts.

Account Management:

  • Dashboard: Users should have access to a dashboard displaying their account balance, recent transactions, and notifications.
  • View Account Details: Users should be able to view their account information, including account number, ID, and status.
  • Edit Account Information: Users should be able to edit certain account information, such as their email address.

Transfers:

  • Search Account: Users should be able to search for other Fintrac accounts using account numbers or IDs.
  • Initiate Transfer: Users should be able to initiate transfers by specifying the recipient account, amount, and description.
  • Transfer Confirmation: Users should be able to review and confirm transfer details before finalizing the transaction.
  • Transfer Processing: The system should process transfers securely and update account balances accordingly.
  • Transfer Completion: Users should be notified of successful transfers and have access to transaction details.

Payment Requests:

  • Search Account: Users should be able to search for other Fintrac accounts to request payments.
  • Create Payment Request: Users should be able to create payment requests by specifying the payer account, amount, and description.
  • Request Confirmation: Users should be able to review and confirm payment request details before sending.
  • Request Notification: Payers should be notified of received payment requests.
  • Request Settlement: Payers should be able to review and settle payment requests through a secure process.
  • Request Completion: Users should be notified of settled payment requests and have access to transaction details.
  • Delete Payment Request: Users should be able to delete sent payment requests.

Credit Card Management:

  • Add Credit Card: Users should be able to add credit cards by providing card details and holder information.
  • Fund Credit Card: Users should be able to transfer funds from their Fintrac account to their credit card.
  • Withdraw from Credit Card: Users should be able to withdraw funds from their credit card to their Fintrac account. -Delete Credit Card: Users should be able to delete credit cards associated with their accounts.

Notifications:

  • Receive Notifications: Users should receive notifications for various activities, including successful transfers, received payment requests, credit card updates, and announcements.
  • View Notifications: Users should be able to view a list of their notifications and mark them as read.

Admin Interface:

  • Manage Users: Admins should be able to view, edit, and delete users.
  • Manage Accounts: Admins should be able to view, edit, and manage account details, including balances and statuses.
  • Manage Transactions: Admins should be able to view and manage transaction details.
  • Manage Notifications: Admins should be able to view and manage notifications sent to users.

Security:

  • Secure Login: The system should implement secure login procedures with password hashing and protection against common attacks.
  • Two-Factor Authentication: The system should offer optional two-factor authentication for enhanced security.
  • Data Encryption: Sensitive data like account information and transaction details should be encrypted.
  • Session Management: User sessions should be managed securely with appropriate timeouts and security measures.

Additional Requirements:

  • Responsive Design: The user interface should be responsive and adapt to different screen sizes and devices.
  • Internationalization: The system should support multiple languages and currencies.
  • Reporting: The system should provide reports for transactions and account activity.
  • Auditing: The system should log user actions and changes for auditing purposes. These functional requirements outline the core functionalities of Fintrac. Additional features and requirements can be added based on specific needs and project scope.

Fintrac: Non-Functional Requirements

Non-functional requirements define the system's quality attributes and performance characteristics. Here are some key non-functional requirements for Fintrac:

Performance:

  • Response Time: The system should have a fast response time for user actions and transactions.
  • Transaction Processing Speed: Transactions should be processed quickly and efficiently.
  • Scalability: The system should be able to handle increasing user load and transaction volume.

Security:

  • Data Confidentiality: Sensitive user data and financial information should be kept confidential and protected from unauthorized access.
  • Data Integrity: The system should ensure data integrity and prevent data corruption.
  • Availability: The system should be highly available and accessible to users with minimal downtime.

Usability:

  • User Interface: The user interface should be intuitive, user-friendly, and easy to navigate.
  • Accessibility: The system should be accessible to users with disabilities.
  • Internationalization: The user interface and functionalities should be adaptable to different languages and currencies.

Reliability:

  • Error Handling: The system should handle errors gracefully and provide informative messages to users.
  • Recovery: The system should have mechanisms for recovering from failures and data loss.

Maintainability:

  • Code Maintainability: The code should be well-structured, documented, and easy to maintain.
  • System Updates: The system should be designed to facilitate easy updates and upgrades.

Other Non-Functional Requirements:

  • Logging: The system should log user actions and system events for auditing and troubleshooting purposes.
  • Monitoring: The system should be monitored for performance, security, and availability.
  • Compliance: The system should comply with relevant financial regulations and security standards. These non-functional requirements are crucial for ensuring the overall quality, performance, and security of Fintrac. Specific requirements and metrics can be further defined based on project priorities and constraints.

About

🏦 Welcome to FinTrac, your all-in-one solution for modern online banking management!

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published