A Node.js application for managing Productboard Notes with local change tracking and rollback functionality.
- Notes Management: Create, read, update, and delete notes via Productboard API
- Local Change Tracking: All modifications are tracked locally with timestamps
- Rollback Functionality: Undo any change made through the application
- Web Interface: Clean table view for displaying notes with company, title, source, owner, and tags
- API Integration: Full integration with Productboard's REST API
- Node.js 18.x or higher
- npm or yarn
- Productboard API token (Pro plan or higher required)
- Clone the repository:
git clone https://github.com/sthollmann/productboard-notes-manager.git
cd productboard-notes-manager- Install dependencies:
npm install- Set up environment variables:
cp .env.example .env
# Edit .env and add your Productboard API token- Start the application:
npm start- Open your browser to
http://localhost:3000
Create a .env file in the root directory:
PRODUCTBOARD_API_TOKEN=your_productboard_api_token_here
PORT=3000
- View Notes: Navigate to the main page to see all notes in a table format
- Create Notes: Use the "Create Note" tab to add new notes
- Edit/Delete: Use the action buttons in the table to modify or remove notes
- View Changes: Check the "Local Changes" tab to see all tracked modifications
- Rollback: Use the rollback button next to any change to undo it
GET /api/notes- Fetch all notesPOST /api/notes- Create a new notePUT /api/notes/:id- Update an existing noteDELETE /api/notes/:id- Delete a noteGET /api/changes- Get local changesPOST /api/rollback/:changeId- Rollback a specific change
The application includes comprehensive automated tests with 90%+ coverage.
# Run all tests
npm test
# Run tests with coverage report
npm run test:coverage
# Run tests in watch mode (development)
npm run test:watch
# Run tests for CI/CD
npm run test:ci- Statements: 90.69%
- Branches: 57.89%
- Functions: 81.81%
- Lines: 90.47%
├── index.js # Main application server
├── public/
│ └── index.html # Web interface
├── tests/
│ ├── final.test.js # Comprehensive test suite
│ ├── utils.test.js # Utility function tests
│ └── setup.js # Test configuration
├── .github/
│ └── workflows/
│ └── ci.yml # GitHub Actions CI/CD
├── coverage/ # Test coverage reports
├── local_changes.json # Local changes storage (auto-generated)
└── README.md
- Express Server: Handles HTTP requests and serves the web interface
- Productboard API Client: Manages communication with Productboard's API
- Change Tracking: Records all modifications for rollback capability
- Web Interface: Single-page application with tabbed navigation
- Write Tests First: Follow TDD approach
- Implement Feature: Add the functionality
- Verify Coverage: Ensure tests pass and coverage remains high
- Update Documentation: Keep README and docs current
Set these in your production environment:
PRODUCTBOARD_API_TOKEN: Your Productboard API tokenPORT: Port to run the server on (default: 3000)NODE_ENV: Set to 'production' for production deployment
FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY . .
EXPOSE 3000
CMD ["npm", "start"]- Fork the repository
- Create a feature branch:
git checkout -b feature/new-feature - Write tests for your changes
- Implement the feature
- Run tests:
npm test - Commit your changes:
git commit -am 'Add new feature' - Push to the branch:
git push origin feature/new-feature - Submit a pull request
MIT License - see LICENSE file for details
For issues and questions:
- Create an issue in the GitHub repository
- Check the test documentation for API usage examples
- Review the Productboard API documentation: https://developer.productboard.com/
- ✅ Complete Productboard API integration
- ✅ Local change tracking and rollback functionality
- ✅ Web interface with table view
- ✅ Comprehensive test suite (90%+ coverage)
- ✅ CI/CD pipeline with GitHub Actions
- ✅ Complete documentation