# CompareWare Roadmap

## **Current Features**

These features have been fully implemented:

### **Autocompletion for Adding Items and Properties**
- Integrated Wikidata's search API to provide autocompletion for item and property inputs.

### **Fetching Basic Information**
- Used Wikidata's REST API to fetch metadata for newly added items (e.g., description, tags).
- Automatically populated these fields in the spreadsheet after adding an item.

### **Wikidata Autocompletion**
- Used Gloo's HTTP client to make calls to the Wikidata search API.

### **App Component Updates**
- Added a placeholder grid view using Leptos’ `view!` macro.
- Rendered the comparison grid.
- Added functionality to fetch items' properties dynamically from Wikidata.

### **Enhance ItemForm**
- Enabled searching for existing items via Wikidata.
- Displayed fetched details in the form.

---

## **CompareWare: Next Steps**

### **Immediate Steps**

#### **Autocompletion for Adding Items and Properties:**
- Fetch all properties for items from wikidata.
- Autofill propertiy field with available properties for said item.
- Add a fallback to redirect users to the Wikidata item creation page when a search fails.

### **Authentication**
- Enable authentication for users using Nsec.app.

#### **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.