Skip to content

Repository files navigation

CivIntel - Community Incident Reporting Platform

Django Python Bootstrap Heroku

Live Application

🌐 Visit CivIntel here

About the Project

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.

Built With

  • 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

Key Objectives

  • Enable community-driven incident reporting
  • Provide verification system for reports
  • Support anonymous reporting for sensitive situations

Features

✅ 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

Technologies Used

Backend

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. 

Frontend

Bootstrap==5.1.3
Font Awesome==6.0
JavaScript (ES6)
Django Crispy Forms
Django Summernote

Deployment & Tools

Heroku Cloud Platform
WhiteNoise (Static files)
Gunicorn (WSGI server)
Git/GitHub (Version control)

Getting Started

### Prerequisites
Before you begin, ensure you have the following installed:
- Python 3.12 or higher
- pip (Python package installer)
- Git
- PostgreSQL (for production)

Wireframe Mockup

  1. About Page
  1. Feed Page

SCHEMA

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

Installation

  1. 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
  1. Create a virtual environment
# On Windows
python -m venv venv
venv\Scripts\activate

# On macOS/Linux
python3 -m venv venv
source venv/bin/activate
  1. Install dependencies
pip install -r requirements.txt
  1. Set up environment variables Create a .env file in the root directory: SECRET_KEY=your-secret-key-here DEBUG=True

  2. Local Development To commit and push changes from your local filesystem to GitHub:

  3. Open a terminal/command prompt and navigate to your project directory.

  4. Track changes using Git:

    git add .
    
  5. Commit the changes with a descriptive message:

    git commit -m "Describe the changes you made"
    
  6. Push the changes to your GitHub repository:

    git push origin main
    
  7. Deploy manually on Heroku. Ensure Debug is False before deployment.

Credits

  • Inspiration for the page layout and design was gotten from X layout and codeinstitute tutorials.
  • Background image was sourced from Pexels

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages