Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/siddhant-vij/simple-authentication-system
A terminal-based authentication system designed to showcase registration, login, and password reset functionality using a CSV-based storage.
https://github.com/siddhant-vij/simple-authentication-system
authentication csv dart hashing login registeration reset-password
Last synced: 2 months ago
JSON representation
A terminal-based authentication system designed to showcase registration, login, and password reset functionality using a CSV-based storage.
- Host: GitHub
- URL: https://github.com/siddhant-vij/simple-authentication-system
- Owner: siddhant-vij
- License: mit
- Created: 2023-08-26T21:48:36.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2023-09-04T05:20:41.000Z (over 1 year ago)
- Last Synced: 2023-10-04T06:38:40.035Z (over 1 year ago)
- Topics: authentication, csv, dart, hashing, login, registeration, reset-password
- Language: Dart
- Homepage:
- Size: 23.4 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# Simple Authentication System
A terminal-based authentication system designed to showcase registration, login, and password reset functionality using a CSV-based storage.
## Table of Contents
1. [Features](#features)
2. [Getting Started](#getting-started)
- [Prerequisites](#prerequisites)
- [Installation](#installation)
3. [Usage](#usage)
4. [Testing](#testing)
5. [Contributing](#contributing)
6. [Future Improvements](#future-improvements)
7. [License](#license)
8. [Acknowledgements](#acknowledgements)
## Features
- **User Authentication**: Register, log in, and reset passwords.
- **CSV-Based Storage**: User data is stored and retrieved from a CSV file.
- **Secure**: Passwords are hashed before being stored.
- **CLI Interface**: Clear menu-driven CLI interface to interact with the system.
- **Logout Feature**: Allow logged-in users to securely log out of the system.
- **Password Strength Checker**: Enforce users to choose strong passwords during registration or reset.
- **Forgot Password Mechanism**: Offer a mechanism for users to recover their password if forgotten.
- **Delete Account Option**: Allow users to delete their account and all associated data.
- **Lockout Mechanism**: Deter brute-force attempts by locking out after consecutive incorrect password attempts.
## Getting Started
### Prerequisites
- Dart SDK: Ensure you have the Dart SDK installed. If not, get it from [here](https://dart.dev/get-dart).
### Installation
1. Clone the repository:
```bash
git clone https://github.com/siddhant-vij/Simple-Authentication-System.git
```2. Navigate to the project directory and fetch the dependencies:
```bash
cd Simple-Authentication-System
dart pub get
```
## Usage
1. Start the application:
```bash
dart run
```2. Follow the on-screen instructions to register, log in, and reset passwords if needed. User data will be stored in a `users.csv` file within the project directory.
## Testing
This project comes with unit tests. To run them:
```bash
dart test
```
## Contributing
Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are **greatly appreciated**.
1. **Fork the Project**
2. **Create your Feature Branch**:
```bash
git checkout -b feature/AmazingFeature
```
3. **Commit your Changes**:
```bash
git commit -m 'Add some AmazingFeature'
```
4. **Push to the Branch**:
```bash
git push origin feature/AmazingFeature
```
5. **Open a Pull Request**
## Future Improvements
Below are some of the potential improvements and added functionalities that can enhance the Simple Authentication System:
**1. Session Management**: A timeout mechanism that logs out the user after a certain period of inactivity.
**2. Audit Log**: Maintain a log of all authentication activities for monitoring and security purposes.
**3. Multi-Factor Authentication**: Introduce an option for users to enable additional security layers for logging in.
**4. Backup and Recovery**: Design a backup mechanism to safeguard user data and ensure recovery options in case of system failures.
**5. Transition to a Relational Database**: Migrate from a CSV-based system to a more robust relational database like PostgreSQL or MySQL for better scalability, performance, and security.
**6. Database Backup**: Implement routine backups of the database to ensure data safety in case of unexpected failures.
**7. Data Validation and Sanitization**: Enhance the system to validate and sanitize inputs more thoroughly to protect against SQL injection and other potential threats, especially if moving to a more complex database system.
## License
Distributed under the MIT License. See [`LICENSE`](https://github.com/siddhant-vij/Simple-Authentication-System/blob/main/LICENSE) for more information.
## Acknowledgements
- [Dart Language](https://dart.dev/)
- [crypto package](https://pub.dev/packages/crypto)
- [csv package](https://pub.dev/packages/csv)