Skip to content

Latest commit

 

History

History
52 lines (43 loc) · 2.3 KB

README.md

File metadata and controls

52 lines (43 loc) · 2.3 KB

RepoGenius

This project, developed as part of the Distributed Systems Engineering course in the Master's Degree Program in Computer Science at the University of Catania, aims to create a distributed system that, starting from a GitHub link or certain parameters, performs an analysis on the reference repository based on elements such as code, language, files, etc.

🎯 Project Objectives

  1. Automated Data Collection: Implement a system that can automatically collect data from GitHub repositories, using direct links or specific parameters, ensuring efficient and accurate extraction of information.
  2. Code Structure Evaluation: Analyze the code structure within the repositories, examining the organization of files, modularity, and the relationships between different components of the project.
  3. Code Quality Metrics: Calculate and present code quality metrics such as cyclomatic complexity, test coverage, code smells, and other indicators of good software development practices.
  4. Support for Developers: Provide tools and detailed reports that help developers better understand their code, identify areas for improvement, and adopt good development practices.

🔗 Architecture and Functioning of the RepoGenius Pipeline

The RepoGenius pipeline is composed of these microservices:
  • Flask
  • RabbitMQ

ℹ️ How to use

  1. Clone the repository
git clone https://github.com/ManciSee/RepoGenius.git
cd RepoGenius
  1. Build and run the docker container
docker compose up --build
  1. Run the RabbitMQ consumer
cd rabbitmq/rabbitmq-consumer
python3 consumer.py
  1. Open the Flask server on port 5001
  2. Insert a link of a GitHub repository and enjoy!

📀 Demo

repogenius_demo.mp4

👥 Authors