🎯

Project Overview

Project Name: Automated Code Review System

Description: This is a comprehensive Java Full Stack project designed to streamline the code review process. Users can submit Java code snippets, complete .java files, or entire .zip project folders for automated analysis.

The system leverages PMD (Programming Mistake Detector) for static code analysis, providing detailed review reports that highlight potential issues, code smells, and adherence to coding standards. This helps developers identify problems early and maintain high code quality.

Purpose: To provide developers with automated code reviews based on industry best practices and coding standards. The system also supports human reviewers (Testers) who can view submissions, run additional analyses, and provide personalized feedback and suggestions.

Key Features

🔐 Authentication System
Secure login and signup with JWT token-based authentication
📝 Code Snippet Submission
Submit small Java code snippets for quick analysis
📄 File Upload
Upload complete .java files for comprehensive review
📁 Project Analysis
Submit entire ZIP projects for full-scale analysis
🔍 PMD Integration
Automated static code analysis using PMD rules
💾 Result Storage
Automatic storage of all review results in database
👥 Tester Dashboard
Dedicated interface for reviewers to analyze submissions
🛡️ Role-Based Access
Spring Security with role-based authorization
⚙️ Admin Panel
Future enhancement for system administration
🛠️

Technologies Used

⚙️ Backend Technologies
Java 17
Spring Boot
Spring MVC
Spring Security
JWT Authentication
Hibernate (JPA)
MySQL Database
PMD Static Analyzer
🎨 Frontend Technologies
HTML5
CSS3
JavaScript (ES6+)
Responsive Design
RESTful API Integration
🔧

Tools & External Libraries

  • PMD: Core static code analysis engine for detecting programming flaws and code quality issues
  • Postman: API testing and documentation tool for backend endpoint validation
  • IntelliJ IDEA / VS Code: Primary development environments for coding and debugging
  • Git & GitHub: Version control system for source code management and collaboration
  • CORS Configuration: Globally enabled Cross-Origin Resource Sharing for seamless frontend-backend communication
  • Maven: Dependency management and build automation tool
  • Swagger/OpenAPI: API documentation and testing interface
🏗️

Project Architecture

RESTful API Controllers
Separate controllers for different functionalities: AuthController, SubmissionController, ReviewController, UserController
JWT Token Authentication
Stateless authentication using JSON Web Tokens for secure API access
Role-Based Authorization
Method-level security using @PreAuthorize annotations for fine-grained access control
File Handling System
Robust file upload and processing for .java files and .zip archives
Global CORS Configuration
Cross-origin resource sharing enabled for seamless frontend-backend integration
Database Integration
ReviewResultRepository and other JPA repositories for persistent data storage
📚

Documentation & References