A public feedback board and roadmap system using GitHub Issues as the backend. Users can log in with GitHub, submit feedback, upvote ideas, view changelogs, and see the roadmap.
- GitHub Authentication: Log in with your GitHub account
- Feedback Board: Submit and view feedback items
- Upvoting: Upvote feedback items you support
- Changelog: View updates and changes
- Roadmap: See what's planned, in progress, and completed
- Admin Controls: Manage feedback items (for authorized users)
- HTML5 (semantic layout)
- TailwindCSS via CDN
- Vanilla JavaScript (no frameworks, no builds)
- GitHub REST API v3
- GitHub OAuth for authentication
- GitHub account
- GitHub OAuth App registration
- Go to your GitHub account settings
- Navigate to Developer settings > OAuth Apps > New OAuth App
- Fill in the following details:
- Application name: Fusion Feedback (or your preferred name)
- Homepage URL:
https://your-deployment-url.com(orhttp://localhost:3000for local development) - Authorization callback URL:
https://your-deployment-url.com/callback.html(orhttp://localhost:3000/callback.htmlfor local development)
- Register the application
- Note down the Client ID
- Generate a new Client Secret and note it down (you'll only see it once)
-
Clone this repository:
git clone https://github.com/nhyyebo/fusion-feedback.git cd fusion-feedback -
Create a
config.jsfile in thejsdirectory with your GitHub OAuth credentials:const config = { clientId: 'YOUR_GITHUB_CLIENT_ID', redirectUri: 'http://localhost:3000/callback.html', owner: 'YOUR_GITHUB_USERNAME', // or organization name repo: 'fusion-feedback' // or your repository name }; export default config;
-
Serve the project using a local web server. For example, using Python:
# Python 3 python -m http.server 3000Or using Node.js with a package like
http-server:npx http-server -p 3000
-
Open your browser and navigate to
http://localhost:3000
Important: This implementation uses the GitHub OAuth flow with a client-side application. For production use, consider implementing a server-side component to securely handle the OAuth flow and protect your client secret.
MIT