CyberIce is a comprehensive web application designed to manage user registrations, logins, and handle security threats. This project integrates a frontend built with React and a backend built with Node.js and Express, connected to a MongoDB database.
- User Registration and Authentication: Users can register and login with secure password hashing.
- CRUD Operations for Security Threats: Users can create, read, update, and delete security threat records.
- Loading Screen: Displays a loading screen before confirming the backend server is running.
- Responsive Design: The frontend is built with responsiveness in mind.
To set up this project locally, follow these steps:
-
Clone the repository:
git clone https://github.com/Mugisha-Samuella/cyberice.git cd cyberice
-
Install dependencies for both frontend and backend:
# Navigate to the backend folder cd backend npm install # Navigate to the frontend folder cd ../frontend npm install
-
Set up MongoDB: Make sure you have MongoDB installed and running. The application expects MongoDB to be running on
mongodb://localhost:27017/cybericedb
. -
Start the backend server:
cd backend npm run start
-
Start the frontend development server:
cd ../frontend npm run dev
Once both servers are running, you can access the application at http://localhost:3001
.
- Navigate to the SignUp page to create a new account.
- Navigate to the Login page to access your account.
- After logging in, you can access the ThreatDashboard to create, view, update, or delete security threats.
- POST /signup: Register a new user
- POST /login: Authenticate a user and login
- POST /threats: Create a new security threat
- GET /threats: Retrieve all security threats
- PUT /threats/:id: Update a specific security threat
- DELETE /threats/:id: Delete a specific security threat
- GET /health: Check if the backend server is running
cyberice/
├── backend/
│ ├── models/
│ │ ├── FormData.js
│ │ └── SecurityThreat.js
│ ├── routes/
│ ├── app.js
│ └── package.json
└── frontend/
├── src/
│ ├── Pages/
│ │ ├── Home.js
│ │ ├── Services.js
│ │ ├── Resources.js
│ │ ├── Blog.js
│ │ ├── SignUp.js
│ │ ├── Login.js
│ │ ├── ThreatDashboard.js
│ │ ├── ForgotPassword.js
│ │ └── Loading.js
│ ├── App.js
│ └── index.js
└── package.json
Contributions are welcome! Please follow these steps to contribute:
- Fork the repository.
- Create a new branch (
git checkout -b feature-branch
). - Make your changes.
- Commit your changes (
git commit -m 'Add some feature'
). - Push to the branch (
git push origin feature-branch
). - Open a pull request.
This project is licensed under the MIT License. See the LICENSE file for details.