Level 1 Team Project
Level 1 Projects
1. ATM Bank Terminal Simulator
This guide is tailored for students who want to build an ATM terminal-like application using React and Vite frameworks, based on the files and designs you've shared.

Step 1: Initialize the Project
1. Create a new React + Vite project:
2. Install dependencies (if you use additional ones like React Router or icons):
Step 2: Set Up Project Structure
Structure your folders as follows:
Add the provided
App.jsxandstyle.cssinto your/srcand root respectively.
Step 3: Build Components
Header.jsx
Footer.jsx
Message.jsx
Step 4: Complete App.jsx Logic
Your App.jsx file is already well-implemented based on the challenge!
✅ State management for user inputs.
✅
handleChange()function updates state dynamically.✅
handleSubmit()prevents page reload, checks input againstpassCode, and sets verification state.✅ DRY (Don't Repeat Yourself) principle is followed by using common handlers.
Step 5: Apply Styling
Use the provided style.css. Add it to your main.jsx:
Step 6: Add Background Image
Place the background image in /public/images/ folder, and ensure the path in style.css matches:
Step 7: Test the App
Run the development server:
Output

Check if:
✅ You can enter the 4-digit code.
✅ The correct code (
1001) grants access.✅ Any other code denies access.
✅ Styling matches the provided screenshot.
Step 8 (Optional): Improvements 🚀
Auto-focus to the next input box after typing.
Add animations or transitions on success/fail.
Add sound effects for success/error.
Save "verified" state in localStorage.
Let's expand the app with two exciting features: PIN entry animations and auto-tab functionality!
Step 9: Add PIN Entry Animations
Update the CSS for Input Animations
In your style.css, add:
This gives a nice pulse effect when typing PIN numbers.
Add Shake Animation for Incorrect PIN
In style.css, add:
Apply Class Conditionally in App.jsx
Update your <form> tag in App.jsx to conditionally apply the shake animation:
Step 10: Add Auto-Tab Functionality
Enhance
handleChange()function in App.jsx:
Step 11: Test New Features 🚀
Run your app and test:
✅ Inputs pulse on focus.
✅ Form shakes when the wrong PIN is entered.
✅ Cursor auto-moves to the next input.
Modify the Footer component so as to display the balance when correct pin is entered. If PIN is entered incorrectly, warning red shield icon is displayed. If PIN is correctly verified, green shieled icon is displayed.
Step 12: Update Footer Component to Display Balance and Icons
Install React Icons Library (optional but recommended):
Update Footer.jsx Component:
Pass Status Prop from App.jsx:
In App.jsx, update your Footer component usage:
Test:
✅ Enter correct PIN → Balance with green shield icon.
✅ Enter incorrect PIN → Warning with red icon.
✅ Before input → Prompt message "Please enter your PIN".
Output:

Last updated