https://github.com/pbergstrom90/keycardsimulator
Examproject to simulate a Keycardreader in C, November 2023.
https://github.com/pbergstrom90/keycardsimulator
c exam keycard scanner simulation
Last synced: over 1 year ago
JSON representation
Examproject to simulate a Keycardreader in C, November 2023.
- Host: GitHub
- URL: https://github.com/pbergstrom90/keycardsimulator
- Owner: PBergstrom90
- License: mit
- Created: 2023-11-07T13:55:27.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-10-28T15:10:59.000Z (over 1 year ago)
- Last Synced: 2025-01-27T08:12:13.629Z (over 1 year ago)
- Topics: c, exam, keycard, scanner, simulation
- Language: C
- Homepage:
- Size: 2.24 MB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Keycard System
## Overview
This program simulates a basic keycard system where users can manage a list of keycards, grant or revoke access, and save/load keycard data to/from a text file.
## Features
- **Add New Keycards:**
Users can add new keycards to the system, specifying unique card IDs and access permissions.
- **Revoke Access:**
The program allows users to revoke access for specific keycards. This feature is crucial for maintaining security and controlling entry permissions.
- **View Keycard List:**
Users can view the list of keycards in the system. This provides an overview of all registered keycards and their current access status.
- **Save and Load Keycard Data:**
The system supports saving keycard data to a file (`cardlist.txt`) and loading data from the same file. This ensures persistent storage of keycard information between program sessions.
- **Simulate Remote Door Operations:**
The program includes a simulation of remote door operations. Users can initiate door actions such as opening or locking, providing a visual representation through simulated green and red lights.
- **Scan Keycards:**
Users can scan a keycard, check its access permissions, and simulate corresponding door actions based on the card's status (access granted or denied).
## Getting Started
1. **Compilation:**
- Make sure you have a C compiler installed.
- Compile the program using your preferred compiler. Example: `gcc main.c -o keycard_system`
2. **Run the Program:**
- Execute the compiled program: `./keycard_system`
3. **Usage:**
- Follow the on-screen instructions to navigate through the keycard system.
- Use the admin menu to manage keycards.
## File Structure
- `main.c`: Main program file.
- `adminmenu.c`: Admin menu functions.
- `card.h`: Keycard-related struct.
- `cardlist.h`: Struct for managing the list of keycards.
- `fileio.c`: File I/O functions for saving and loading keycard data.
- `listcard.c`: Functions for listing and printing card information.
- `cardaccess.c`: Functions responsible for handling card access and modifying access permissions.
- `remotedoor.c`: File simulating remote door operations, with a red-green light simulation.
- `scancard.c`: Functions responsible for scanning a card, checking access permissions, and simulating door actions.
- `safeinput.c`: Functions for handling user inputs throughout the program.
## Sample Keycards (Default)
- Card ID: 1212, Access Granted: Yes
- Card ID: 1213, Access Granted: No
## File Descriptions
- `cardlist.txt`: Text file to save/load keycard data. Is created upon program start, if it has not yet been created.