|
1 |
| -# CSIRT-Backend |
2 |
| -# Project Name |
3 |
| -Brief description of your project. Mention its purpose and what problem it aims to solve. |
| 1 | +# CSIRTs in Africa Interactive Map |
4 | 2 |
|
5 |
| -# Table of Contents |
6 |
| -> Installation |
7 |
| -> Usage |
8 |
| -> Features |
9 |
| -> Contributing |
10 |
| -> License |
11 |
| -> Installation |
| 3 | +This project involves creating an interactive map to display information about Computer Security Incident Response Teams (CSIRTs) in Africa. The main components are: |
12 | 4 |
|
| 5 | +- Backend API built with Django REST Framework |
| 6 | +- PostgreSQL database |
| 7 | +- Frontend web app with React |
| 8 | +- Interactive map visualization using Leaflet |
| 9 | +- Docker deployment |
13 | 10 |
|
| 11 | +## Usage |
14 | 12 |
|
15 |
| -# Clone the repository |
16 |
| -git clone https://github.com/Nkbtemmy/CSIRT-Backend |
| 13 | +The API and frontend are containerized using Docker for easy deployment. |
17 | 14 |
|
18 |
| -# Navigate to the project directory |
19 |
| -cd CSIRT-Backend |
| 15 | +To start locally: |
20 | 16 |
|
21 |
| -# Install dependencies |
22 |
| -pip install -r requirements.txt |
| 17 | +``` |
| 18 | +docker-compose up --build |
| 19 | +``` |
23 | 20 |
|
24 |
| -# Additional setup steps, if any |
25 |
| -Usage |
26 |
| -Explain how to use your project. Provide examples and code snippets to demonstrate its functionality. |
| 21 | +The frontend will be available at https://csirt-fe.vercel.app/ and the API at https://csirt-be.onrender.com/. |
27 | 22 |
|
28 |
| -python |
29 |
| -Copy code |
30 |
| -# How to run the application |
31 |
| - > python manage.py runserver |
32 |
| - or |
33 |
| - > docker compose up --build |
| 23 | +The API provides endpoints for CRUD operations on the CSIRT data. The frontend calls these endpoints to fetch data and displays an interactive map populated with CSIRT location markers. Users can click on a country on the map and then a marker with the country name and response teams there. |
| 24 | + |
| 25 | +## Code Repositories |
| 26 | +1. https://github.com/Nkbtemmy/CSIRT-Backend |
| 27 | +2. https://github.com/Nkbtemmy/CSIRT-Frontend |
| 28 | + |
| 29 | +## API Documentation |
| 30 | + |
| 31 | +The API is documented using Swagger. The documentation can be viewed at: |
| 32 | + |
| 33 | +https://csirt-be.onrender.com//docs |
| 34 | + |
| 35 | +## Deployment |
| 36 | + |
| 37 | +The containers are set up for deployment to a cloud provider. Configure the appropriate deployment steps: |
| 38 | + |
| 39 | +- Push images to a registry like Docker Hub |
| 40 | +- Deploy containers to a host like OnRender and Vercel |
| 41 | + |
| 42 | +## Frontend Details |
| 43 | + |
| 44 | +The frontend uses: |
| 45 | + |
| 46 | +- React with create-react-app |
| 47 | +- React Router for navigation |
| 48 | +- Leaflet and React Leaflet for mapping |
| 49 | + |
| 50 | +Components: |
| 51 | + |
| 52 | +- MapView - Renders the Leaflet map |
| 53 | + |
| 54 | +## Backend Details |
| 55 | + |
| 56 | +The Django REST Framework backend provides a REST API with: |
| 57 | + |
| 58 | +- Django model for CSIRT information |
| 59 | +- Serializers to convert model to JSON |
| 60 | +- CRUD views for Create, Read, Update, Delete operations |
| 61 | + |
| 62 | + |
| 63 | +The PostgreSQL database is managed using Django's ORM. |
| 64 | + |
| 65 | + |
| 66 | +## Future Improvements |
| 67 | + |
| 68 | +Some potential ways to expand on the project: |
| 69 | + |
| 70 | +- Add user registration and accounts |
| 71 | +- Support más multiple map views like clusters |
| 72 | +- Integrate with GeoDjango for advanced GIS features |
| 73 | +- Add additional data and filters like services, contacts, etc |
| 74 | + |
| 75 | +## ERD Diagram for model |
| 76 | + |
| 77 | + |
0 commit comments