An interactive simulator that emulates an ATM (automated teller machine) and a mobile device with a complete ecosystem of more than 17 functional and interactive integrated applications.
- Overview
- Main Features
- Project Architecture
- Technologies Used
- Installation and Running
- Project Structure
Nexia is an advanced simulator that emulates a full banking and mobile ecosystem. It allows interaction with an ATM and a mobile device featuring more than 17 functional and interactive applications, enabling bank transactions, contact management, money transfers, and much more.
- Authentication: Access using bank card and PIN
- Cash management: Deposits and withdrawals
- Balance inquiry: Display available funds
- Advanced leaderboard:
- View users with the most money
- Users with the most registered contacts
- Users who have made the most transactions
- Realistic interface: Design that emulates a real ATM
- Status Bar: Displays real-time clock continuously
- Unlock Screen: Device lock/unlock interface
- Functional Physical Buttons:
- Volume buttons (up/down) - integrated with the radio app
- Bottom navigation buttons on the touchscreen for going back
- Multiple languages: Spanish, English, Japanese, and French
| Application | Description |
|---|---|
| π° Bank | View balance, make transactions, operation history |
| π Rewards | View available money, claim rewards periodically |
| πΈ Transfers | Securely send money to other users |
| π Contacts | Add/update/delete contacts with name and phone number |
| π± Phone | Make calls to contacts |
| π¬ Messages | Messaging system between users |
| π» Radio | Player with 3 international stations: |
| - π¨π΄ Colombia | |
| - πΊπΈ USA | |
| - π―π΅ Japan | |
| Volume control integrated with physical buttons | |
| π¬ The Simpsons | Character, episode, and location information |
| π Leaderboard | Global user rankings by money and transactions |
| βοΈ Settings | Change wallpapers, dark/light theme, language |
| πΈ Gallery | Device image management |
| π Notifications | Alert and notification system |
| π€ Profile | User information |
| π Support | Help and contact system |
| And more... | Multiple additional interactive applications |
- Wallpaper change: Multiple visual themes
- Themes: Dark and light mode
- Language: Support for 4 main languages
βββββββββββββββββββββββββββββββββββββββ
β Presentation (UI/React) β
β ββββββββββββββββββββββββββββββββββββ
β β ATM System | Mobile System ββ
β β - Screens | - Apps (17+) ββ
β β - Auth | - Hardware UI ββ
β ββββββββββββββββββββββββββββββββββββ
βββββββββββββββββββββββββββββββββββββββ
β
βββββββββββββββββββββββββββββββββββββββ
β Logic (Hooks/Core) β
β - Global State β
β - Validations β
β - Utilities β
βββββββββββββββββββββββββββββββββββββββ
β
βββββββββββββββββββββββββββββββββββββββ
β Services (API) β
β - Auth0 | Bank | Transfers β
β - User | Contacts | Radio β
β - Leaderboard | Support β
βββββββββββββββββββββββββββββββββββββββ
β
βββββββββββββββββββββββββββββββββββββββ
β Backend API (Server) β
β - Authentication β
β - Banking Operations β
β - Data Synchronization β
βββββββββββββββββββββββββββββββββββββββ
Nexia/
βββ package.json # Project dependencies and scripts
βββ tsconfig.json # TypeScript configuration
βββ vite.config.ts # Vite build configuration
βββ index.html # App entry HTML
βββ src/
βββ main.tsx # React app entry point
βββ App.tsx # Root application component
βββ api/
β βββ axios.client.ts # HTTP client setup
βββ assets/ # Images, icons, wallpapers, fonts
βββ i18n/ # Multi-language support and context
βββ Nexia/
βββ auth/ # Auth UI and flows
βββ components/ # Shared UI components
βββ pages/ # Main page screens and layouts
βββ services/ # External API service modules
βββ styles/ # Global and feature styles
βββ SystemAtm/ # ATM system screens and logic
βββ SystemPhone/ # Mobile system screens, apps, and core
| Category | Technology | Version |
|---|---|---|
| Framework | React | ^19.2.3 |
| Language | TypeScript | ~5.9.3 |
| Bundler | Vite | 7.2.5 |
| Routing | React Router DOM | ^7.12.0 |
| Authentication | Auth0 React | ^2.15.1 |
| HTTP Client | Axios | ^1.13.6 |
| Icons | Lucide React | ^1.3.0 |
| Linting | ESLint | ^9.39.1 |
- Node.js v18+
- npm v9+
- Modern browser
# Clone repository
git clone <REPOSITORY_URL>
cd Devices/Nexia
# Install dependencies
npm installCreate a .env file:
VITE_AUTH0_DOMAIN=your_domain.auth0.com
VITE_AUTH0_CLIENT_ID=your_client_id
VITE_API_URL=http://localhost:3000npm run devOpen http://localhost:5173
npm run build
npm run previewnpm run lintThe project uses TypeScript with React Hooks:
// Typed service example
interface ITransfer {
id: string;
from: string;
to: string;
amount: number;
}
export const transferMoney = async (
fromUser: string,
toUser: string,
amount: number
): Promise<ITransfer> => {
return apiClient.post('/transfers', { from: fromUser, to: toUser, amount });
};- β Auth0 for secure credential management
- β JWT tokens for sessions
- β Login, Logout, and Delete Account functional
- β Input validation on client and server
Version: 1.0.0 | Status: Completed
