Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pc_builder-1.2.6.tar.gz (40.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pc_builder-1.2.6-py3-none-any.whl (66.8 kB view details)

Uploaded Python 3

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

Hashes for pc_builder-1.2.6.tar.gz
Algorithm Hash digest
SHA256 7bd2f243237ccbe3f56df301f2fdc3faa1fcab4844ed2da380e930ed7f801361
MD5 0baab765ab6bf67bbb37795bdd34164a
BLAKE2b-256 47d20f7c52c4599a72c69282aa92465056c25b0b1542f0bcfa0674b311568b7c

See more details on using hashes here.

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

Hashes for pc_builder-1.2.6-py3-none-any.whl
Algorithm Hash digest
SHA256 77d6fbf38a7580a81e08d912bb52dcdc7564ac6e0353571d21ef84d2206e9d90
MD5 bae7c56e56d77e1726b850751f72e41a
BLAKE2b-256 c0ff02e60b2cd3a3698931ae203ba29be9313be76425b40890a98cda5e648e05

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page