1MEIC06T03: APLens - FEUP-MEIC-DS-2024-25/ai4sd GitHub Wiki
Vision
Misaligned architectural patterns lead to scalability, maintainability, and costly refactoring issues in software projects. With APLens there is no need to waste time analyzing multiple files in order to assess the quality of the implementation these patterns. Pick your GitHub repository and picking a specific architectural pattern and have your pattern implementation analyzed in a matter of seconds.
Research
POSA patterns - Pattern Oriented Software Architecture
Listing most common architectural patterns.
Cloud Adoption Patterns, Kyle Geen Brown
Architectural patterns on the cloud engineering context.
Domain Analysis
Class Diagram
Activity Diagram
Sequence Diagram
Architecture and design
Technologies
Frontend
For the implementation of the front-end ReactJS was the clear choice. It offers a component based architecture that helps isolating each components logic and, therefore, development. It's fast and scalable. For style, we picked Tailwind as it easily adapts to the ReactJS development process.
Backend
The back-end was built in Python, more precisely, Django. A powerful and pragmatic framework that combines the ease of use of Python and many buil-in operations ideal for creating a simple server.
Storage
We use Firestore - a cloud NoSQL database - to store user query histories. This way, our users will be able to consult older queries.
Development guide
Frontend
First, install the dependencies of the project
npm install
You're now ready to run the project
npm start
frontend/src/components
This file is where components are stored
frontend/src/pages
This file is where pages are stored
Backend
Run backend/manage.py
python3 manage.py runserver
Script
Run start_servers.sh
to automatically initialize both backend and frontend.
./start_servers.sh
Security concerns
As our tool allows for the analysis of private repositories, we intend their data to remain that way. Therefore, we assure no data coming from a private repository will be used to train LLM models.
Quality assurance
🔧
How to use
- Choose the repository you want to analyze!
- If the repository is private provide us with its access token.
- Pick the Pattern you want to analyze
- Submit and wait for your results!
How to contribute
0. Prerequisits
Be sure to have all the needed technologies installed (check them here)
1. Cloning the repository
Use a password-protected SSH key
git clone [email protected]:FEUP-MEIC-DS-2024-25/T06_G03.git
Clone using the web URL
git clone https://github.com/FEUP-MEIC-DS-2024-25/T06_G03.git
2. Contribute!
- If you have any suggestion or bug report feel free to open an issue!
- Feel free to contribute by making a Pull Request!
Sprints
This section is focused on showing the team's progress based on the teams' Scrum Board status in the end of each sprint.
Sprint 1
Sprint 2
Happiness Meter
Levels (bad to excelent): 🗑 < 🤮 < 🤙 < 👌 < 🥰
Diogo Fernandes | Hélder Costa | Henrique Gardê | Jaime Fonseca | João Silva | |
---|---|---|---|---|---|
Diogo Fernandes | ❌ | 🥰 | 🥰 | 🥰 | 🥰 |
Hélder Costa | 🥰 | ❌ | 🥰 | 🥰 | 🥰 |
Henrique Gardê | 🥰 | 🥰 | ❌ | 🥰 | 🥰 |
Jaime Fonseca | 🥰 | 🥰 | 🥰 | ❌ | 🥰 |
João Silva | 🥰 | 🥰 | 🥰 | 🥰 | ❌ |