{"id":30619337,"url":"https://github.com/villepekkaa/atm-simulator-project","last_synced_at":"2026-04-05T21:02:30.129Z","repository":{"id":280382190,"uuid":"914757839","full_name":"villepekkaa/atm-simulator-project","owner":"villepekkaa","description":"School project where we developed an ATM simulator with QT Framework and Node.js/Express.js using a MySQL database.","archived":false,"fork":false,"pushed_at":"2025-03-03T04:53:58.000Z","size":1250,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-17T19:45:55.680Z","etag":null,"topics":["cpp","expressjs","mysql-database","nodejs","qt"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/villepekkaa.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-01-10T08:48:06.000Z","updated_at":"2025-03-03T10:23:10.000Z","dependencies_parsed_at":"2025-03-03T05:37:29.691Z","dependency_job_id":null,"html_url":"https://github.com/villepekkaa/atm-simulator-project","commit_stats":null,"previous_names":["alavuvi/atm-simulator-project","villepekkaa/atm-simulator-project"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/villepekkaa/atm-simulator-project","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/villepekkaa%2Fatm-simulator-project","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/villepekkaa%2Fatm-simulator-project/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/villepekkaa%2Fatm-simulator-project/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/villepekkaa%2Fatm-simulator-project/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/villepekkaa","download_url":"https://codeload.github.com/villepekkaa/atm-simulator-project/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/villepekkaa%2Fatm-simulator-project/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272852287,"owners_count":25004054,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-30T02:00:09.474Z","response_time":77,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cpp","expressjs","mysql-database","nodejs","qt"],"created_at":"2025-08-30T12:46:47.843Z","updated_at":"2025-12-30T21:34:52.136Z","avatar_url":"https://github.com/villepekkaa.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ATM Simulator Project\nThis was the second information technology project in Oulu University of Applied Sciences. The goal was to create an ATM simulator and to get familiar with QT Framework, node.js/express.js and MySQL -database in real world like project. Documentation and diagrams we're also key part of this software development application project.\n\n## How the App Works\nAt the start application prompts for cardId. After the ID is succesfully entered PIN-code input prompt appears and user needs to type 4 number PIN within 10 second time limit. If user types wrong PIN-code three times in a row card is locked and needs to be reactivated by the sysadmin.\n\nUser has an possibility to hold both credit and debit cards as well as combination of them. If number for combination card is entered the app prompts which one user likes to select.\n\nIn main menu there are shortcuts for withdraw money, show balance, show transactions and logout.\n\nBelow is the state diagram for the project which demonstrates basic functionality of the application.\n\n### State Diagram\n![State diagram](state_diagram.png)\n\n## Technologies\nThis project is build on top of following technologies:\n- Frontend: QT-framework / C++\n- Backend: REST API; Node.js/Express.js\n- Database: MySQL database\n\n## System Requirements\nThe system includes the following components:\n\n- The actual computer of the target system, which has an Windows operating system.\n\n- A server computer that runs the latest Windows or Linux operating system. The server runs the MySQL database selected for the product.\n\n- A computer network for data transmission (using http or https protocol) between the ATM's computer and the server.\n\n- The product uses a REST API node.js/express.js in between the ATM application and the database.\n\n### ER-Diagram for the Database\n![ER-diagram](er-diagram.png)\n\n### Project Poster\n![Project Poster](project_poster.png)\n\n## License\nThis software and it's documentation is using MIT license.\n\n## Developers and Their Main Responsibilities\n- [Ville-Pekka Alavuotunki](https://github.com/alavuvi) - login system (front- and backend), combination card, timers, cruds for card/accountcard, various backend models and routes etc..\n- [Aapo Pähti](https://github.com/PahtiA) - account cruds and balance in QT\n- [Kata Niva](https://github.com/kataniva) - transactions cruds and transactions in QT\n- [Tuure Väänänen](https://github.com/tvll) - customer cruds and withdraw in QT\n\nTogether we transitioned our backend to Digital Oceans Linux Virtual Servers and set it up with automatic database backup solutions built with bash script and crontab job.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvillepekkaa%2Fatm-simulator-project","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvillepekkaa%2Fatm-simulator-project","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvillepekkaa%2Fatm-simulator-project/lists"}