The Assault Reporting System is a desktop-based application designed to provide a structured, secure, and efficient way to report and manage assault-related incidents.
It enables multiple stakeholders—such as administrators, reporters, and investigators—to collaborate within a centralized system. The application follows an enterprise-level architecture, making it scalable, modular, and easy to extend.
The system is built to:
- 🛡️ Provide a safe and organized platform for reporting incidents
- 📂 Enable efficient case tracking and management
- ⚡ Improve response time and accountability
- 📊 Maintain structured records for analysis and auditing
The application is designed using a multi-level enterprise architecture:
- Represents the entire system
- Contains multiple organizations
- Acts as the top-level control unit
- Represents departments within the enterprise
- Each organization has specific responsibilities
- Helps in separating concerns and workflows
Different users interact with the system based on roles:
- Admin 👨💼 → Manages system configuration, users, and organizations
- Reporter 🧑💻 → Submits incident reports
- Investigator 🕵️♂️ → Reviews and updates case progress
- Users 👥 → Access features based on role-based permissions
- 📝 User submits an assault report
- 📂 Report is stored in the system
- 🕵️ Investigator reviews the case
- 🔄 Case status is updated (Pending → In Progress → Resolved)
- 📊 Admin monitors system activities
- Create and manage assault reports
- Maintain structured case records
- Role-based access control (RBAC)
- Manage users and permissions
- Multi-organization support
- Logical separation of responsibilities
- Object-based storage using domain models
- Ensures consistency and traceability
- Java Swing
- Java (OOP Principles)
- Encapsulation
- Inheritance
- Abstraction
- Polymorphism
- In-memory object-based data model
- ☕ Java SE
- 🖼️ Java Swing
- 📦 Java Collections Framework
- 🧱 MVC-like design pattern
- 🔑 Role-based authentication & authorization
- 📂 Centralized incident reporting
- 🔄 Case lifecycle tracking
- 🏢 Multi-organization architecture
- 📊 Structured data handling
- 🧩 Modular and extensible design
Even though this is a desktop application, it demonstrates several real-world system design principles used in large-scale systems:
- Similar to SaaS systems where multiple organizations exist under one platform
- Ensures scalability and logical isolation
- Different roles (Admin, Reporter, Investigator) with controlled permissions
- Prevents unauthorized actions
- Separation of UI, business logic, and data models
- Makes system easier to maintain and extend
- Case lifecycle: Pending → In Progress → Resolved
- Represents a state machine design pattern
-
Entities like:
- Enterprise
- Organization
- User
- Report
-
Clear mapping of real-world problem → software model
- Architecture can easily evolve into:
- REST APIs (Spring Boot)
- Microservices
- Cloud deployment (AWS/Azure)
- Built using enterprise architecture concepts
- Implements real-world system design patterns
- Focused on solving a critical real-world problem (incident reporting)
- Clean separation of concerns
- Easily extendable to cloud-native architecture
- 🌐 Convert to web-based system (React + Spring Boot)
- ☁️ Deploy on AWS / Azure
- 🗄️ Integrate database (PostgreSQL / MySQL)
- 📧 Add notification services (Email/SMS using SES/SNS)
- 📊 Build analytics dashboard
The Assault Reporting System demonstrates a strong foundation in enterprise application design and system architecture, incorporating key concepts like RBAC, modular design, workflow management, and multi-tenant structuring — all of which align with industry practices used in FAANG-level systems.