Git Product home page Git Product logo

soravkumarsharma / atm-project-for-beginners Goto Github PK

View Code? Open in Web Editor NEW
5.0 5.0 10.0 52 KB

The Project name is "ATM - Automated Teller Machine", and this project is for beginners, with the help of this project the beginners can understand the basic concepts.

License: MIT License

C++ 100.00%
atm atm-project atm-project-for-beginners automated-teller-machine beginner-friendly beginner-project beginners project

atm-project-for-beginners's Introduction

Hi 👋, I'm Sorav Kumar Sharma

A passionate DevOps Engineer from INDIA

bannerlinkedin

  • 📝 I regularly write articles on Hashnode

  • 💬 Ask me about AWS, Jenkins, K8s, Docker, Linux, Ansible, Terraform, Python, Java

  • 📫 How to reach me [email protected]

Connect with me:

soravks_ https://www.linkedin.com/in/soravkumarsharma/ https://hashnode.com/@soravks

Languages and Tools:

aws bash docker flask git go grafana java jenkins kubernetes linux mariadb mongodb mysql postgresql python redis

atm-project-for-beginners's People

Contributors

achilleasmitos avatar ananya12k avatar architkumar-13 avatar coderyuvi avatar rishav1707 avatar soravkumarsharma avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

atm-project-for-beginners's Issues

Mask password with asterisk

masking is an important technique that is used vastly in programming for security purposes like logging in and signing up for entering any pin information.

Add "Bank Statement" Option.

A bank statement is an official document that summarizes your account activity over a certain period of time—typically one month. You’ll find records of all transactions—both incoming and outgoing.

[Bug] Logout functionality not working

While choosing option 5 which is for Logging out the code is not logging out the user and instead displaying the same set of options which were asked to the logged user.

Steps to recreate the scenario:

Step 1: Fill the initial details and create the account.
Step 2: Press 5 on keyboard to Logout.
Step 3: Enter your email id and 4-digit pin.
Step 4: You will again see the Welcome Page.

Screenshot:

logout issue

Codeowners

Is your feature request related to a problem? Please describe.
As an open source project with different contributors, it might be a good idea to establish early on code owners for different parts of the repository, so that changes made to them have to reviewed by the code owners of those particular parts (this also requires an accompanying change in the PRs of the repo).

Describe the solution you'd like
Add a CODEOWNERS file as described here specifying the first code owners.

Describe alternatives you've considered
No alternative solution, as this is merely a suggestion based on personal experience and good practices.

Additional context
No additional context necessary.

User input sanitization

Is your feature request related to a problem? Please describe.
As it stands, the user's input to the application is not sanitized before used in the desired context. This can often have unexpected implications (like the application crashing when you input a string where an integer is expected).

Describe the solution you'd like
All input should be sanitized before continuing into the rest of the application. Specifically, any input should be categorized based on what form we want it to have (eg a string, an integer, a float), checked against some conditions based on that form and asked for repeatedly in case these conditions are not meant (eg when an input cannot be converted to an integer when an integer has been asked). At the end, the input of the user should always be within the constraints we have established and not be able to crash the application or produce infinite loops.

Describe alternatives you've considered
No viable alternatives exist beyond writing a utility function as described above.

Additional context
None necessary; one can try entering a string into the creation of the PIN to see its results.

Log account in

Is your feature request related to a problem? Please describe.
We only have an option to log a user out of the application, but no such option for them to log in again. One can only sign up at the start of the application, effectively logging in at the same time.

Describe the solution you'd like
Have an option for the user to log into an account after they have logged out. Perhaps this can be a separate menu with few options (e.g. "Log in" and "Exit"). At a single run of the application, one should also be able to log in to and out of multiple accounts, which the bank should keep in its memory.

Describe alternatives you've considered
Apart from a separate menu, an extra option to log in could be available in the main menu. However, this can clatter things quite a bit, and does not follow the same philosophy with the other options.

Additional context
None needed, this is a new feature request.

Modularity in the Program

The program consists of only function which is not good from future perspective. It should have classes that will have the functions. The main function will be small.

Cannot have PIN that starts with 0

Describe the bug
At the moment, one cannot have a PIN that starts with a zero ('0'). This limits the number of possible PINs, while also being counter-intuitive.

To Reproduce

  1. Start the aplpication
  2. Log in with your full name
  3. During the PIN creation try to input any of the: "0000", "0123", "0056"

Expected behavior
The creation of the PIN should be successful.

Screenshots
image

Desktop (please complete the following information):

  • OS: Windows
  • Browser NA
  • Version NA

Smartphone (please complete the following information):

  • Device: NA
  • OS: NA
  • Browser NA
  • Version NA

Additional context
None.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.