docs(README): document ways to collaborate on the project
This commit is contained in:
parent
32d5aae382
commit
92973b4a4d
1 changed files with 21 additions and 73 deletions
94
README.md
94
README.md
|
@ -27,84 +27,32 @@ CompareWare is an open-source platform for comparing tools (software, hardware,
|
||||||
```
|
```
|
||||||
3. Open your browser at [http://localhost:3000](http://localhost:3000)
|
3. Open your browser at [http://localhost:3000](http://localhost:3000)
|
||||||
|
|
||||||
## **Roadmap**
|
### **Collaboration**
|
||||||
|
We welcome contributions! Here’s how you can help:
|
||||||
|
|
||||||
1. **Item Management** (In progress)
|
### 1. **Contribute Code**
|
||||||
- Implement a form (`item_form.rs`) to allow users to add new items with metadata and key-value tags.
|
- Fork the repository and create a new branch for your feature or fix.
|
||||||
- Create a listing component (`items_list.rs`) to display and manage added items.
|
- Ensure your changes are well-tested and include documentation if necessary.
|
||||||
- Add backend functionality to validate and persist items using the Leptos framework.
|
- Open a **pull request** describing the changes and why they are useful.
|
||||||
|
|
||||||
2. **Nostr Integration** (In progress)
|
### 2. **Report Issues**
|
||||||
- Use Nostr events for decentralized data storage, mapping item data to specific Nostr event types.
|
- If you encounter bugs or have suggestions, please open an issue on the [Issues page](https://forge.ftt.gmbh/ryanmwangi/Compware/issues).
|
||||||
- Authenticate users through their Nostr keys for secure and decentralized access.
|
- Provide as much detail as possible, including steps to reproduce the issue and relevant error messages.
|
||||||
- Enable data sharing and synchronization with Nostr-compatible clients.
|
|
||||||
|
|
||||||
|
### 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.
|
||||||
|
|
||||||
## **Compareware: Next Steps**
|
### 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!
|
||||||
|
|
||||||
Here’s how I intend to break down the vision into actionable steps to build upon the current codebase I’ve already built:
|
### 5. **Community and Discussion**
|
||||||
|
- Feel free to ask questions, provide feedback, or engage in discussions related to CompareWare’s development.
|
||||||
|
|
||||||
### **Immediate Steps**
|
### 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.
|
||||||
|
|
||||||
#### **Basic Interface (Spreadsheet-like):**
|
We appreciate any contributions that can help improve CompareWare and make it more useful for the community!
|
||||||
- Create a grid-based UI to represent items and their properties.
|
|
||||||
- Use rows for properties and columns for items.
|
|
||||||
- Leverage a Leptos-based table or a custom grid component for rendering.
|
|
||||||
|
|
||||||
#### **Autocompletion for Adding Items and Properties:**
|
|
||||||
- Integrate Wikidata's search API to provide autocompletion for item and property inputs.
|
|
||||||
- Add a fallback to redirect users to the Wikidata item creation page when a search fails.
|
|
||||||
|
|
||||||
#### **Fetching Basic Information:**
|
|
||||||
- Use Wikidata's REST API to fetch metadata for newly added items (e.g., description, tags, etc.).
|
|
||||||
- Populate these fields in the spreadsheet automatically after adding an item.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### **Building on the Current Code**
|
|
||||||
|
|
||||||
#### **Enhance the `ItemForm` to Allow:**
|
|
||||||
- Searching for existing items via Wikidata.
|
|
||||||
- Displaying fetched details in the form.
|
|
||||||
- Modify the `handle_submit` function to fetch and populate additional item details after submission.
|
|
||||||
|
|
||||||
#### **Update the `App` Component to:**
|
|
||||||
- Add a placeholder grid view using Leptos’ `view!` macro.
|
|
||||||
- Render the comparison grid.
|
|
||||||
- Add functionality to fetch items' properties dynamically from Wikidata.
|
|
||||||
|
|
||||||
#### **Add Wikidata Autocompletion:**
|
|
||||||
- Use Gloo's HTTP client to make calls to the Wikidata search API.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### **Mid-Term Enhancements**
|
|
||||||
|
|
||||||
#### **Editable Fields with Wikidata Sync:**
|
|
||||||
- Implement field-level editing in the grid.
|
|
||||||
- Use Wikidata's APIs to update data directly for logged-in users.
|
|
||||||
|
|
||||||
#### **Subjective Properties with Nostr Integration:**
|
|
||||||
- Add a toggle for "objective" (Wikidata) vs. "subjective" (Nostr-backed) properties.
|
|
||||||
- Store subjective properties locally first and publish them to a Nostr relay for decentralized edits.
|
|
||||||
|
|
||||||
#### **Cache Mechanism:**
|
|
||||||
- Use a lightweight database (e.g., SQLite or a key-value store like Redis) as a cache for frequently accessed items and properties.
|
|
||||||
- Implement cache invalidation for edits to ensure the latest data is fetched.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### **Advanced Features**
|
|
||||||
|
|
||||||
#### **Advanced Filtering and Sorting:**
|
|
||||||
- Add functionality to filter items by tags or properties.
|
|
||||||
- Enable sorting by property values.
|
|
||||||
|
|
||||||
#### **Item Suggestions:**
|
|
||||||
- Based on properties and tags, suggest items for comparison.
|
|
||||||
|
|
||||||
#### **Collaborative Comparison:**
|
|
||||||
- Enable real-time collaboration with WebSockets, allowing users to view and edit comparisons together.
|
|
||||||
|
|
||||||
#### **Export/Share Comparison:**
|
|
||||||
- Add options to export the comparison as a CSV or share it via a unique link.
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue