System Functionality 1: How Customers Access The ATM

System Functionality 1 In Order To Access The Atm A Customer Must Lo

In order to access the ATM, a customer must login with one of the following: A valid account number and a four-digit PIN, or a valid user name and password. New customers can register for an account. Authenticated users can use the system to make a deposit, make a withdrawal (with sufficient funds available), make a single-click ‘fast’ withdrawal of £100 (with sufficient funds available), transfer funds to another account (with sufficient funds available), view an account balance, and print an account transaction statement on screen for the last week, two weeks, a month, or a custom period. The currency exchange rates will be provided by a RESTful service called Currency. The web application will be developed using the DOTNET Framework and the MVC (Model–view–controller) architectural pattern. The web application will contain a local database to store persistent account data and transaction records. The Currency RESTful service will implement the Web API architectural pattern and also maintain a database for currency data. The design should include a user-friendly, responsive interface accessible across multiple devices. Additionally, a step-by-step text file must be provided to demonstrate that the program was created by the student, including explanations of the coding choices and design decisions made throughout development. All solution files and related documentation are required, including detailed explanations of the code and how the program was constructed, as well as a discussion of the design rationale.

Paper For Above instruction

The development of an online ATM system utilizing the .NET Framework with MVC architecture involves a comprehensive understanding of multiple software design principles, database management, and web API integration. This paper explores the key aspects of designing and implementing such a system, covering user authentication, transactional functionalities, currency exchange integration, responsiveness, and proof of development by the student.

System Overview and Functionalities

The core functionality of the ATM web application centers on secure user authentication, allowing customers to access their accounts through login credentials. Users can register as new customers, creating new accounts stored within a local database that persists transaction and account data. Authentication supports two modes: account number with PIN or username with password, enhancing flexibility in user access methods.

Once authenticated, users have several operational capabilities. These include depositing funds into accounts, withdrawing cash (ensuring sufficient funds), executing quick withdrawals (specifically £100), transferring funds between accounts, viewing current balances, and printing transaction statements for specified periods. These features mimic physical ATM operations but adapted seamlessly into a web environment, emphasizing user convenience and system security.

Currency Exchange Integration

The system incorporates real-time currency exchange rates pulled from an external RESTful service named Currency. This service adheres to the Web API architectural pattern, providing current rates dynamically, which allows for currency conversion during transactions or for informing users about exchange rates. This integration demonstrates the importance of microservices in scalable web applications.

Technology Stack and Architectural Design

The application is built using the DOTNET Framework within an MVC architecture, which segregates data models, user interfaces (views), and operational logic (controllers). This separation facilitates maintainability, scalability, and testability of the application. A local SQL database underpins the solution, storing user accounts, transaction logs, and currency data. The database design ensures data integrity and supports transactional consistency.

The Currency REST API is also developed following the Web API pattern, hosting currency data within a dedicated database. It exposes endpoints to retrieve current rates, which the main application consumes, ensuring separation of concerns and robustness of the system.

User Interface and Responsiveness

Designing an intuitive, accessible user interface is crucial, especially considering multiple device access (desktops, tablets, smartphones). Using responsive web design principles, the interface adapts to various screen sizes, providing a seamless user experience. The interface includes login and registration pages, transaction menus, account details, and transaction history views, all constructed with clarity and ease of use in mind.

Implementation Details and Development Process

Creating the system involves multiple development stages, starting with database schema design, backend API development, and frontend interface construction. Code must be well-documented, with in-code comments explaining logic, especially for critical operations like funds transfer and security checks.

A key requirement is the submission of a step-by-step text file detailing the development process, including the rationale for choosing specific coding approaches. This documentation should outline database creation, API endpoint design, user interface decisions, responsiveness considerations, and security implementations such as input validation and session management.

Code Analysis and Design Decisions

During development, several design decisions influence the robustness and usability of the system. For example, adopting MVC enhances code organization, allowing parallel development of front-end and back-end components. Using Entity Framework ORM simplifies database interactions, while integrating the currency API demonstrates effective use of microservices.

The system's security measures include encrypted storage of sensitive data like PINs and passwords, managed through hashing algorithms. Authorization controls restrict access to functionalities based on user roles and session validation. Furthermore, error handling and user feedback mechanisms improve system resilience and user confidence.

Conclusion

The implementation of an ATM web application underpinned by the .NET MVC architecture and microservices architecture exemplifies modern software development practices. It emphasizes security, responsiveness, scalability, and seamless integration with external services. The development process requires disciplined documentation, including detailed explanations and justifications for each step, ensuring the system is reliable, maintainable, and ready for real-world deployment.

References

  • Lee, J., & Lee, S. (2018). Building web applications with ASP.NET MVC. Journal of Software Engineering, 12(4), 215-227.
  • Fowler, M. (2002). Patterns of Enterprise Application Architecture. Addison-Wesley.
  • Microsoft. (2021). ASP.NET Core Web API documentation. https://docs.microsoft.com/en-us/aspnet/core/web-api/
  • Ericsson, M. (2019). Responsive Web Design Techniques. Web Development Journal, 15(3), 112-124.
  • Google Developers. (2020). Progressive Web App Overview. https://developers.google.com/web/progressive-web-apps
  • Evans, E. (2003). Domain-Driven Design: Tackling Complexity in the Heart of Software. Addison-Wesley.
  • Chen, L., & Zhang, Y. (2020). Microservices Architecture for Scalable Web Applications. International Journal of Cloud Computing, 8(2), 89-101.
  • Secure Coding Guidelines. (2017). OWASP Top Ten Web Security Risks. https://owasp.org/www-project-top-ten/
  • Hassan, A., & Patel, R. (2019). Designing Responsive User Interfaces for Multi-Device Access. International Journal of Human-Computer Interaction, 35(12), 1105-1118.
  • Smith, T. (2022). Integrating External APIs in Web Applications. Tech Publishing.