A modern, interactive banking application built with HTML5, CSS3, and JavaScript (ES6+). Bankist simulates a banking dashboard where users can manage their accounts, monitor transactions, transfer money, request loans, and track their financial activity through a clean and intuitive interface.
This project was developed to practice modern JavaScript concepts, DOM manipulation, array methods, event handling, and dynamic user interface updates.
🚀 View Live Demo | 💻 GitHub Profile
- Login system using predefined usernames and PINs.
- Personalized welcome message after successful login.
- Dashboard visibility controlled by login status.
- Basic credential validation using JavaScript.
- Display the current account balance.
- Calculate total incoming deposits.
- Calculate total outgoing withdrawals.
- Calculate eligible interest earnings.
- Automatically update account information after transactions.
- Display deposits and withdrawals.
- Differentiate between incoming and outgoing transactions.
- Dynamically generate transaction elements.
- Update transaction history after account operations.
- Transfer money between available demo accounts.
- Validate transfer amounts.
- Check the sender's available balance.
- Prevent transfers to the same account.
- Update both accounts after a successful transfer.
- Request a loan by entering an amount.
- Check loan eligibility based on previous deposits.
- Add approved loans to the account's transaction history.
- Automatically recalculate the balance and account summary.
- Close an account after confirming the username and PIN.
- Remove the account from the available demo accounts.
- Hide the dashboard after account closure.
- Transaction sorting control.
- Session countdown timer interface.
- Separate sections for transfers, loans, and account closure.
- Clean dashboard layout and interactive forms.
Note: Features such as transaction sorting, automatic logout, and transaction dates may require additional JavaScript implementation if they are not functional in the current version.
| Technology | Purpose |
|---|---|
| HTML5 | Structuring the application |
| CSS4 | Styling and layout |
| JavaScript (ES6+) | Application logic and interactivity |
| DOM Manipulation | Dynamically updating interface elements |
| Array Methods | Processing transactions and account data |
| Event Listeners | Handling user interactions |
| Google Fonts | Poppins typography |
This project demonstrates practical experience with the following JavaScript concepts:
- Variables, functions, arrays, and objects.
- Array iteration using
forEach(). - Data transformation using
map(). - Filtering data using
filter(). - Calculations using
reduce(). - Searching with
find()andfindIndex(). - Conditional checks using
some(). - Arrow functions and callback functions.
- Template literals and dynamic HTML generation.
- DOM selection and manipulation.
- Event handling with
addEventListener(). - Conditional logic and form validation.
- Optional chaining with
?.. - Working with
MapandSet. - Managing application state through JavaScript objects.
- Calculating account balances, transaction summaries, and interest.
Bankist-Account/
│
├── index.html # Application structure
├── style.css # Styling and layout
├── script.js # Banking logic and interactions
├── logo.png # Application logo
├── icon.png # Browser favicon
└── README.md # Project documentation
This structure represents the expected organization based on the HTML file. Adjust filenames if your repository uses a different structure.
You can explore the live version or run the project locally.
Visit the deployed application:
1. Clone the repository
git clone https://github.com/ElyarDev/Bankist-Account.git2. Navigate to the project directory
cd Bankist-Account3. Open the application
Open index.html in your browser, or use the Live Server extension in Visual Studio Code.
No package installation or build process is required for the current frontend implementation.
The application includes four predefined demo accounts.
| Account Holder | Username | PIN |
|---|---|---|
| Jonas Schmedtmann | js |
1111 |
| Jessica Davis | jd |
2222 |
| Steven Thomas Williams | stw |
3333 |
| Sarah Smith | ss |
4444 |
How to log in:
- Open the live demo.
- Enter one of the usernames listed above.
- Enter the corresponding PIN.
- Click the login arrow to access the dashboard.
Security notice: These credentials are public demonstration data stored in client-side JavaScript. They do not provide real authentication or protect sensitive information.
Bankist is an educational frontend project designed to demonstrate JavaScript programming and interactive interface development.
- Authentication is handled entirely on the client side.
- Account data is stored in JavaScript objects.
- Transactions are simulated and are not connected to real bank accounts.
- There is no backend authentication or database persistence in the provided implementation.
- The application is not intended for real financial transactions.
Never enter real banking credentials or sensitive financial information.
The main goal of this project is to strengthen JavaScript fundamentals by building an interactive application that combines data processing, user input, event-driven programming, and dynamic interface updates.
The project also demonstrates how different interface components can work together to simulate common banking operations.
Possible improvements for future versions include:
- Implement functional transaction sorting.
- Add an automatic logout timer.
- Display transaction dates and relative timestamps.
- Improve responsive behavior on mobile devices.
- Add form validation and clear error messages.
- Persist demo data using local storage.
- Add automated tests for banking operations.
- Build a backend API using Node.js and Express.
- Store account data in a database.
- Implement secure server-side authentication and authorization.
- Improve accessibility and keyboard navigation.
Elyar Athari
Frontend developer focused on building interactive web applications and improving JavaScript development skills.
- GitHub: ElyarDev
- Live Project: Bankist Account
This project is intended for educational and portfolio purposes. If the project incorporates original course materials or third-party assets, review the applicable licensing and attribution requirements before redistributing them.
⭐ Thanks for checking out Bankist!
Feel free to explore the live demo, review the source code, and follow my development journey on GitHub.