A CLI application for building and managing PC configurations.
Project description
PC Builder
Overview
The PC Builder is an application designed to help users plan and configure their ideal personal computer setup. It allows users to select components based on their needs, budget, and preferences, providing recommendations and compatibility checks.
Team Members
- Domantas Petkevičius - Back-End Developer, Team Leader
- Dagnis Matulis - Back-End Developer
- Juozas Krukauskas - Front-End Developer
- Simona Vytytė - Front-End Developer
Project Description
The PC Builder application provides an intuitive interface for users to:
- Browse and select various computer components (CPU, GPU, RAM, etc.)
- Filter parts by price, name, sort by price range and sort by keyword
- Add and remove parts from their personal build and display the current configurations.
- Get compatibility checks for selected components.
- Get suggested parts based on incompatibilities.
- Get intelligent suggestions based on set budget and use case.
- Get suggested full build based on set budget and use case.
- View estimated costs based on selected parts.
Technologies Used
- Programming Language: python
- Frameworks: typer for CLI interface
- Testing: pytest and unittest for unit and integration testing
- Build Tools: tox for testing automation and building, PyInstaller for creating executable files
Useful Documents
- All useful documents that allow new team members or stakeholders to familiarize with our project and its practices can be found in docs/
- QA Documentation provides with information about our approach at testing and ensuring quality of the application Link
- UML_Deployment diagram provides an overview of how our application is built and deployed as a package to PyPI Link
- UML_Sequence diagram provides a graphical overview of simple runtime scenarios Link
- Code Style Guidelines document outlines the code standards and formatting/style guidelines that we follow and all new contributors should follow Link
- User Documentation provides really detailed explanations about how our CLI works and how to use it with everything explained step by step Link
Infrastructure Management
The project leverages Git for version control and GitHub for repository hosting. Continuous integration and deployment (CI/CD) are set up using GitHub Actions, streamlining the development workflow through automated testing and package deployment.
Key Features of CI/CD:
Build and Test Automation:
- The CI pipeline uses tox to run automated tests and validate the application.
- A virtual environment is created for Python 3.11, ensuring consistency across environments.
Artifact Management:
- Build artifacts, such as .tar.gz and .whl files, are generated using python -m build and uploaded for further use.
Conditional Deployment:
- Deployments to PyPI occur only on pushes to the main branch. If a version already exists, the deployment step is gracefully skipped.
Concurrency Management:
- Prevents multiple workflows for the same commit with a concurrency setup.
- This workflow ensures that each new change is thoroughly tested and, if valid, automatically packaged and deployed to PyPI, enabling continuous delivery of the application.
Installing the PC Builder Package
- You can easily install the PC Builder package via pip from PyPI:
pip install pc-builder
- Once installed, you can use the pcbuilder command in your terminal to run the application:
pcbuilder
Building and Running the Application from source
This guide provides instructions for developers or contributors to set up the PC Builder project, run tests, and build the application from source.
Prerequisites
Before you begin, ensure you have the following installed on your machine:
- Python 3.7 or later: Download and install Python from python.org.
- pip: This usually comes pre-installed with Python. You can check if you have pip installed by running:
pip --version
Building and Running the Application Locally
-
Clone the repository https://github.com/mif-it-se-2024/group-project-pc-builders
-
Navigate to the Project Directory
cd pc_builder
-
Create a Virtual Environment (Optional but Recommended)
Windows:
python -m venv venv venv\Scripts\activate
Linux:
python3 -m venv venv source venv/bin/activate
-
Install Project Dependencies
pip install -r requirements.txt
-
Run tests and build the application
tox
-
Launch the application
cd dist
pcbuilder.exe ( Windows ) or ./pcbuilder ( Linux )
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pc_builder-1.2.6.tar.gz.
File metadata
- Download URL: pc_builder-1.2.6.tar.gz
- Upload date:
- Size: 40.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.11.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7bd2f243237ccbe3f56df301f2fdc3faa1fcab4844ed2da380e930ed7f801361
|
|
| MD5 |
0baab765ab6bf67bbb37795bdd34164a
|
|
| BLAKE2b-256 |
47d20f7c52c4599a72c69282aa92465056c25b0b1542f0bcfa0674b311568b7c
|
File details
Details for the file pc_builder-1.2.6-py3-none-any.whl.
File metadata
- Download URL: pc_builder-1.2.6-py3-none-any.whl
- Upload date:
- Size: 66.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.11.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
77d6fbf38a7580a81e08d912bb52dcdc7564ac6e0353571d21ef84d2206e9d90
|
|
| MD5 |
bae7c56e56d77e1726b850751f72e41a
|
|
| BLAKE2b-256 |
c0ff02e60b2cd3a3698931ae203ba29be9313be76425b40890a98cda5e648e05
|