No description
Find a file
2025-03-24 20:57:41 +00:00
assets feat(editable cells): add support for multiple input types in EditableCell component 2025-01-10 20:56:25 +03:00
end2end feat(form): add form validation for name and description fields 2024-12-18 14:52:30 +03:00
src fix(db): clean up property deletion to be scoped per url 2025-03-21 16:21:19 +03:00
style feat: update leptos to newest version 2024-12-06 14:45:14 +03:00
.dockerignore build(docker): dockerize compareware 2025-03-13 18:04:34 +03:00
.gitignore build(git): add compareware.db file to .gitignore 2025-01-27 16:38:23 +03:00
Cargo.lock build(cargo.toml): remove unused dependencies 2025-03-05 19:15:08 +03:00
Cargo.toml build(cargo.toml): remove unused dependencies 2025-03-05 19:15:08 +03:00
docker-compose.yml buid(docker): add deckerfile and docker-compose.toml from dev 2025-03-15 16:31:23 +03:00
dockerfile buid(docker): add deckerfile and docker-compose.toml from dev 2025-03-15 16:31:23 +03:00
LICENSE feat: update leptos to newest version 2024-12-06 14:45:14 +03:00
README.md Add CompareWare link to Readme 2025-03-20 12:29:44 +00:00
ROADMAP.md docs(ROADMAP): add ROADMAP.md file to document the current state of the project and the next steps. 2025-01-13 15:51:24 +03:00
rust-toolchain.toml build(toolchain): update rust-toolchain.toml to use Rust 1.82.0 instead of 1.83.0 2025-01-23 00:02:48 +03:00

CompareWare

CompareWare is an open-source platform for comparing tools (software, hardware, etc.) with structured, crowdsourced data. It combines Rust's Leptos for a modern, reactive frontend and Nostr for decentralized data storage (TBI).

Features

  • Item Management: Add, view, and manage items with metadata and key-value tags.
  • Nostr Integration:
    • Store and share data as Nostr events.
    • Authenticate users with Nostr keys.
  • Future Features: Reviews and a Web of Trust for collaborative insights.

Getting Started

Prerequisites

  • Rust (latest stable version)
  • Leptos framework

Installation

  1. Clone the repository:
    git clone https://forge.ftt.gmbh/ryanmwangi/Compware.git
    cd compareware
    
  2. Run the development server:
    cargo leptos serve
    
  3. Open your browser at localhost:3000

Database Schema

Key Concepts

  • PK (Primary Key): Unique identifier for table records (🔑)
  • FK (Foreign Key): Reference linking related tables (➡️)
  • Core (core properties): name and description.

Tables Overview

Table Columns (PK/FK) Description Example Data
urls id (PK), url, created_at Stores comparison URLs 1, "/laptops", 2024-03-01
items id (PK), url_id (FK), wikidata_id Comparison items "item1", 1, "Q214276"
properties id (PK), name All available properties (including core) 1.0, "name"
2.0, "description"
3.0, "screen_size"
item_properties item_id (PK/FK), property_id (PK/FK), value All property values including name/description "item1", 1.0, "MacBook Pro"
"item1", 2.0, "16-inch laptop"
"item1", 3.0, "16 inches"
selected_properties url_id (PK/FK), property_id (PK/FK) Active properties per URL (excludes core) 1, 3.0

Data Flow

Docker Deployment

Prerequisites

  • Docker installed on your system
  • Docker Compose (usually included with Docker Desktop)

Running with Docker

  1. Clone the repository:
    git clone https://forge.ftt.gmbh/ryanmwangi/Compware.git
    cd compareware
    
  2. Start the container:
    docker-compose up -d
    
  3. Access the application at: http://localhost:3000

Collaboration

We welcome contributions! Heres how you can help:

1. Contribute Code

  • Fork the repository and create a new branch for your feature or fix.
  • Ensure your changes are well-tested and include documentation if necessary.
  • Open a pull request describing the changes and why they are useful.

2. Report Issues

  • If you encounter bugs or have suggestions, please open an issue on the Issues page.
  • Provide as much detail as possible, including steps to reproduce the issue and relevant error messages.

3. Feature Suggestions

  • We are constantly looking to improve CompareWare. If you have ideas for new features, please share them in the Issues section.
  • You can also help us prioritize future work by commenting or upvoting on existing feature requests.

4. Documentation Contributions

  • If you spot areas in the documentation that need improvement or if you have suggestions for clearer explanations, please feel free to submit a pull request with the updates.
  • Helping others understand the project is just as valuable as contributing code!

5. Community and Discussion

  • Feel free to ask questions, provide feedback, or engage in discussions related to CompareWares development.

6. Test and Review

  • Help by reviewing pull requests to ensure the code meets our standards and is bug-free.
  • Test new features and provide feedback to improve their functionality and usability.

We appreciate any contributions that can help improve CompareWare and make it more useful for the community!