This repository contains a Security Awareness Training Platform designed to educate users on essential cybersecurity practices. The application walks users through various tasks, including:
- Generating strong passwords.
- Identifying phishing attempts.
- Learning about SSL encryption.
The platform includes interactive challenges and assessments to evaluate the user's understanding of security concepts.
- User Authentication: Secure login and registration system.
- Interactive Challenges: Tasks to strengthen cybersecurity awareness.
- Simulations: Tests for identifying phishing scams and weak passwords.
- Dynamic Feedback: Instant feedback and scoring.
- Responsive UI: Engaging and informative layouts.
Ensure you have the following installed:
- Node.js (v16 is required; higher versions are not supported)
- MongoDB (Running locally or connected via a cloud service)
-
Clone the repository:
git clone git@github.com:egecan12/security-platform.git cd security-platform
-
Install backend dependencies:
cd backend npm install
-
Install frontend dependencies:
cd ../client npm install
-
Create an
.env
file in the backend folder with the following:PORT=5000 JWT_SECRET=your_jwt_secret MONGO_URI=mongodb_connection_string
-
Run the backend server:
cd backend npm run build npm run dev
-
Run the frontend server:
cd ../frontend npm start
We used the JestJS Framework to create tests. Run tests with the following command:
npm run test
Located in the backend
folder, it handles:
- Authentication and Authorization
- User Management
- APIs for Challenge Scoring
Key files:
server.ts
: Main entry point for the server.routes/auth.ts
: Routes for login and registration.models/User.ts
: Mongoose schema for user data.
Located in the frontend
folder, it manages:
- Interactive UI
- Dynamic Feedback
- User Progress Tracking
Key components:
Login.tsx
: Login functionality.Register.tsx
: Registration form.Dashboard.tsx
: Main user dashboard.PhishingTest.tsx
: Challenge for identifying phishing scams.MakePassword.tsx
: Challenge for creating strong passwords.SSLTest.tsx
: SSL encryption awareness test.
-
Authentication:
- Registration: Secure registration with input validation and password hashing.
- Login: Token-based authentication using JWT.
- Logout: Clears session and token data.
-
Challenges:
- Password Strength Test
- Phishing Simulation
- SSL Awareness Quiz
-
Scoring System:
- Challenges are scored dynamically.
- User progress is tracked in the
progressSlice
state.
We welcome contributions to improve this platform! Here's how you can help:
-
Fork the repository.
-
Create a new branch for your feature or bugfix:
git checkout -b feature-name
-
Make your changes and submit a pull request.
- Have I Been Pwned: For password breach validation.
- React Icons: For UI enhancements.
- Node.js and MongoDB: Backbone technologies for the project.
For any questions, feel free to contact us.