{"id":20563351,"url":"https://github.com/siddhant-vij/user-authentication-system","last_synced_at":"2026-04-17T08:32:23.364Z","repository":{"id":194663404,"uuid":"691073750","full_name":"siddhant-vij/User-Authentication-System","owner":"siddhant-vij","description":"Terminal-based user authentication system for registration, login, and password reset using a CSV-based storage.","archived":false,"fork":false,"pushed_at":"2023-10-08T07:08:59.000Z","size":3220,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-06T08:20:35.800Z","etag":null,"topics":["authentication","csv","database","encryption","hashing","java","logging","login","multifactor-authentication","registration","reset-password","security","terminal-based"],"latest_commit_sha":null,"homepage":"","language":"Java","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/siddhant-vij.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2023-09-13T12:57:27.000Z","updated_at":"2023-10-28T19:52:11.000Z","dependencies_parsed_at":"2023-09-14T14:26:49.156Z","dependency_job_id":"a71e7bcd-db63-44e4-8009-c0bd7173d741","html_url":"https://github.com/siddhant-vij/User-Authentication-System","commit_stats":null,"previous_names":["siddhant-vij/user-authentication-system"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/siddhant-vij/User-Authentication-System","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/siddhant-vij%2FUser-Authentication-System","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/siddhant-vij%2FUser-Authentication-System/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/siddhant-vij%2FUser-Authentication-System/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/siddhant-vij%2FUser-Authentication-System/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/siddhant-vij","download_url":"https://codeload.github.com/siddhant-vij/User-Authentication-System/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/siddhant-vij%2FUser-Authentication-System/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31921886,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-16T18:22:33.417Z","status":"online","status_checked_at":"2026-04-17T02:00:06.879Z","response_time":62,"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":["authentication","csv","database","encryption","hashing","java","logging","login","multifactor-authentication","registration","reset-password","security","terminal-based"],"created_at":"2024-11-16T04:17:46.392Z","updated_at":"2026-04-17T08:32:23.347Z","avatar_url":"https://github.com/siddhant-vij.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# User Authentication System\n\nA terminal-based user authentication system designed to showcase registration, login, and password reset functionality using a CSV-based storage.\n\n## Table of Contents\n\n1. [Features](#features)\n2. [Contributing](#contributing)\n3. [Future Improvements](#future-improvements)\n4. [License](#license)\n\n## Features\n\n- **User Authentication**: Register, log in, and reset passwords.\n- **CSV-Based Storage**: User data is stored and retrieved from a CSV file.\n- **Secure**: Passwords are hashed before being stored.\n- **CLI Interface**: Clear menu-driven CLI interface to interact with the system.\n- **Logout Feature**: Allow logged-in users to securely log out of the system.\n- **Password Strength Checker**: Enforce users to choose strong passwords during registration or reset.\n- **Forgot Password Mechanism**: Offer a mechanism for users to recover their password if forgotten.\n- **Delete Account Option**: Allow users to delete their account and all associated data.\n- **Lockout Mechanism**: Deter brute-force attempts by locking out after consecutive incorrect password attempts.\n- **Session Management**: A timeout mechanism that logs out the user after a certain period of inactivity.\n- **Audit Log**: Maintain a log of all authentication activities for monitoring and security purposes.\n- **Multi-Factor Authentication**: Introduce an option for users to enable additional security layers for logging in.\n- **Multi Factor Auth. Add-On**: Give users an option to enable/disable MFA during registration/post-login.\n- **Last Login Information**: Display the date and time of the last successful login upon each login.\n\n## Contributing\n\nContributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are **greatly appreciated**.\n\n1. **Fork the Project**\n2. **Create your Feature Branch**: \n    ```bash\n    git checkout -b feature/AmazingFeature\n    ```\n3. **Commit your Changes**: \n    ```bash\n    git commit -m 'Add some AmazingFeature'\n    ```\n4. **Push to the Branch**: \n    ```bash\n    git push origin feature/AmazingFeature\n    ```\n5. **Open a Pull Request**\n\n## Future Improvements\n\n- **Integration with CAPTCHA**: To prevent bots from abusing the registration or login processes, integrate CAPTCHA challenges.\n- **API Integration**: Code refactor \u0026 allow integration with other systems - used as a service by other apps. For users who may interact with other softwares, provide API key generation \u0026 management within the user account.\n- **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.\n- **Database Backup and Recovery**: Design a backup mechanism \u0026 implement routine backups of the database to safeguard user data and ensure recovery options in case of unexpected system failures.\n- **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.\n- **OAuth \u0026 Social Media Logins**: Allow users to log in using their social media accounts or through OAuth providers like Google, Facebook, etc.\n- **User Profiles**: Expand the system to allow users to have profiles where they can update their personal information, profile pictures, etc.\n- **User Role \u0026 Permissions**: Introduce user roles (Admin, User, Guest, etc.) and permissions, allowing for different levels of access based on the role assigned to a user.\n- **Scalability \u0026 Concurrency**: Design the system for high availability and ensure that it can handle a large number of simultaneous concurrent users.\n- **Rate Limiting**: Introduce rate limiting to prevent abuse from a single IP or user, especially during login or registration processes.\n- **Geofencing**: Allow or disallow authentication based on geographic location.\n- **Email Integration**: Send email notifications for important activities like password reset, account deletion, or suspicious activity alerts. This can also include a verification email upon registration.\n- **Inactive Account Pruning**: Automatically disable or delete accounts that have been inactive for a long period, with prior notification to the user.\n- **Advanced Security Features**: Introduce more advanced security features such as device fingerprinting, and machine learning-driven anomaly detection for suspicious activities.\n- **Access Review**: Periodic prompts for users to review and confirm their security settings, active sessions, and connected devices.\n- **Logging \u0026 Monitoring**: Implement a more comprehensive logging and monitoring solution. Integrate with platforms like ELK stack (Elasticsearch, Logstash, and Kibana) or Graylog to monitor and analyze system logs in real-time.\n\n\n## License\n\nDistributed under the MIT License. See [`LICENSE`](https://github.com/siddhant-vij/User-Authentication-System/blob/main/LICENSE) for more information.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsiddhant-vij%2Fuser-authentication-system","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsiddhant-vij%2Fuser-authentication-system","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsiddhant-vij%2Fuser-authentication-system/lists"}