🌐 Visit CivIntel here
CivIntel is a community-driven platform designed to document, track, and verify security incidents and conflicts. The platform enables citizens to report incidents anonymously or publicly, helping communities and authorities maintain awareness of security situations.
- Django 4.2.23 - The web framework I would recomend for anyone on a tight deadline
- PostgreSQL - Robust database for production
- Bootstrap 5 - Modern responsive front-end framework
- Heroku - Cloud platform for deployment
- Enable community-driven incident reporting
- Provide verification system for reports
- Support anonymous reporting for sensitive situations
✅ User Authentication & Authorization
- Secure registration and login via Django Allauth
- Role-based access control
- Password reset functionality
✅ Report Management
- Create, Read, Update, Delete (CRUD) operations
- Rich text editing with Django Summernote
- Automatic slug generation for SEO-friendly URLs
✅ Verification System
- Three-tier status: Unverified, Verified, False
- Community-driven verification
- Admin moderation capabilities
✅ Advanced Filtering
- Filter by location/state
- Date range filtering
- Status-based filtering
- Full-text search functionality
✅ Interactive Features
- Comment system for community discussion
- Anonymous reporting option
- Real-time form validation
- Responsive design for mobile devices
The main packages used are:
Django==4.2.23
Python==3.12.8
PostgreSQL (Production)
SQLite3 (Development)
django summernote
All other packages are listed in [local requirements](/requirements.txt) using the pip3 freeze --local > reequiremnts command.
Bootstrap==5.1.3
Font Awesome==6.0
JavaScript (ES6)
Django Crispy Forms
Django Summernote
Heroku Cloud Platform
WhiteNoise (Static files)
Gunicorn (WSGI server)
Git/GitHub (Version control)
### Prerequisites
Before you begin, ensure you have the following installed:
- Python 3.12 or higher
- pip (Python package installer)
- Git
- PostgreSQL (for production)
- About Page
- Feed Page
This project consisted of 3 models,
- The Report Model
- The Comment Model
- The State Model The Models were used to create 2 forms for making reports and writing comments. There are 6 sperate views which support the app ERD
- Clone the repository
This repositry can be cloned using the git hub link https://github.com/Kc-Vic/conflict_report_python_project.git
cd civintel- Create a virtual environment
# On Windows
python -m venv venv
venv\Scripts\activate
# On macOS/Linux
python3 -m venv venv
source venv/bin/activate- Install dependencies
pip install -r requirements.txt-
Set up environment variables Create a
.envfile in the root directory: SECRET_KEY=your-secret-key-here DEBUG=True -
Local Development To commit and push changes from your local filesystem to GitHub:
-
Open a terminal/command prompt and navigate to your project directory.
-
Track changes using Git:
git add . -
Commit the changes with a descriptive message:
git commit -m "Describe the changes you made" -
Push the changes to your GitHub repository:
git push origin main -
Deploy manually on Heroku. Ensure Debug is False before deployment.
- Inspiration for the page layout and design was gotten from X layout and codeinstitute tutorials.
- Background image was sourced from Pexels