2025-11-21 22:40:16 +00:00

137 lines
4.1 KiB
Markdown

# Knowledge Article System - Project Roadmap
## Project Overview
A minimal, local desktop knowledge management system for a small IT team (3 users) to document and search process knowledge.
**Tech Stack:**
- Backend: Node.js + SQLite
- Frontend: React + JavaScript
- Key Features: Basic CRUD, simple search, rich text editing
- **Scope:** Single developer, 1-week MVP, then iterate based on real usage
---
## Week 1: MVP Sprint (Days 1-5)
### Goal
Get a working, usable system in the hands of the team by end of week
### Day 1-2: Backend Basics
- [ ] Initialize Node.js project
- [ ] Set up Express server
- [ ] Create SQLite database with single `articles` table
- id (primary key, auto-increment)
- ka_number (unique, e.g., "KA001")
- title (text)
- content (text, will store HTML)
- created_at (timestamp)
- updated_at (timestamp)
- [ ] Implement basic API endpoints:
- `GET /api/articles` - Get all articles
- `GET /api/articles/:id` - Get one article
- `POST /api/articles` - Create article
- `PUT /api/articles/:id` - Update article
- `DELETE /api/articles/:id` - Delete article
- `GET /api/search?q=query` - Basic text search
- [ ] Test endpoints with Postman or Thunder Client
### Day 3-4: Frontend Basics
- [ ] Initialize React app (Vite for faster setup)
- [ ] Create basic layout:
- Search bar at top
- Article list/results view
- Article detail/edit view
- [ ] Integrate a simple rich text editor (recommend: React Quill - easiest to set up)
- [ ] Connect to backend API
- [ ] Implement basic routing (list view ↔ detail view)
### Day 5: Integration & Testing
- [ ] Wire up search functionality
- [ ] Test create/edit/delete workflows
- [ ] Add basic styling (make it readable, doesn't need to be pretty)
- [ ] Fix critical bugs
- [ ] Write quick README with startup instructions
- [ ] Get team to test it
### MVP Feature Set (Absolute Minimum)
✅ Create new KA with title and rich text content
✅ View list of all KAs
✅ Click to view/edit a specific KA
✅ Basic search (title + content)
✅ Delete KA (with confirmation)
✅ Auto-generate KA numbers
### Explicitly OUT of Scope for Week 1
❌ Categories/tags
❌ Version history
❌ Advanced search features
❌ File attachments
❌ Fancy UI/styling
❌ Keyboard shortcuts
❌ Statistics/analytics
❌ Export features
---
## Week 2+: Post-MVP Iteration
### Approach
Now that the team is using it, add features based on actual needs
### Potential Additions (Priority Order)
1. **Categories/Tags** - If team needs better organization
2. **Search improvements** - Fuzzy search, search by KA number only
3. **Better styling** - Make it look nicer once functionality is solid
4. **Recent articles list** - Quick access to commonly used KAs
5. **Edit history** - Track who changed what and when
6. **Attachments** - Add screenshots or log files
7. **Templates** - Pre-filled formats for common issue types
8. **Export to PDF** - For printing or sharing outside the tool
9. **Backup/restore** - Easy database backup
### Iteration Strategy
- Get feedback from users after first week
- Pick ONE feature to add based on biggest pain point
- Implement, test, repeat
- Don't add features "just because" - only add what is actually needed
---
## Success Criteria for Week 1
- [ ] You can create a KA in under 30 seconds
- [ ] You can search and find a KA in under 10 seconds
- [ ] You can edit an existing KA
- [ ] All 3 team members can run it on their machines
- [ ] No critical bugs that prevent basic use
---
## Database Schema (Minimal)
```sql
CREATE TABLE articles (
id INTEGER PRIMARY KEY AUTOINCREMENT,
ka_number TEXT UNIQUE NOT NULL,
title TEXT NOT NULL,
content TEXT,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
);
```
---
## Risk Management
### Main Risks
1. **Scope creep in week 1** - Stay disciplined, MVP only
2. **Time sink on editor** - Use React Quill, don't build custom
3. **Database issues** - Keep schema simple, optimize later
4. **Team won't use it** - Get feedback early and often
### Mitigation
- Set a timer for each task, move on if taking too long
- Use libraries, don't reinvent the wheel
- Manual testing only for week 1