A full-stack web application that serves as a dashboard for the SpiceCode CLI code analyzer. This application allows users to track code quality metrics over time, visualize trends, and manage multiple projects.
- GitHub Authentication: Secure login using GitHub OAuth
- API Key Management: Generate and manage API keys for CLI integration
- Project Management: View and organize multiple codebases
- File-level Metrics: Track metrics for individual files within projects
- Historical Data: View how code quality evolves over time
- Metrics Visualization: Interactive charts and graphs for data analysis
- Deduplication: Automatic deduplication of identical metrics submissions
- Express.js: Web server framework
- PostgreSQL: Database for storing users, projects, and metrics
- Sequelize: ORM for database interactions
- Passport.js: Authentication middleware with GitHub strategy
- JWT: Token-based authentication for frontend-backend communication
- React: UI library for building the user interface
- React Router: Client-side routing
- Material-UI: Component library for consistent design
- Recharts: Charting library for metrics visualization
- Axios: HTTP client for API requests
spicecode-dashboard/
├── server/ # Backend Express application
│ ├── config/ # Configuration files
│ ├── controllers/ # Route controllers
│ ├── middleware/ # Custom middleware
│ ├── models/ # Sequelize models
│ ├── routes/ # API routes
│ ├── utils/ # Utility functions
│ └── server.js # Main server entry point
├── client/ # Frontend React application
│ ├── public/ # Static files
│ └── src/ # React source code
│ ├── components/ # Reusable components
│ ├── contexts/ # React contexts
│ ├── pages/ # Page components
│ └── App.js # Main React component
├── .env # Environment variables
├── package.json # Project dependencies and scripts
├── integration-guide.md # Guide for integrating with SpiceCode CLI
├── deployment-guide.md # Instructions for deploying to Render
└── test-data.md # Sample data for testing
See the Deployment Guide for instructions on setting up and deploying the application.
For information on integrating with the SpiceCode CLI, see the Integration Guide.
To run the application locally:
- Clone the repository
- Install dependencies:
npm install cd client && npm install cd ..
- Set up environment variables in
.env
files - Start the development server:
npm run dev
Use the sample data in test-data.md to validate the application's functionality.
This application is designed to be deployed as a single project on Render. See the Deployment Guide for detailed instructions.
This project is licensed under the MIT License.