Spec-Up-T Editor
Table of Contents
- Overview
- Features
- Architecture
- Installation & Setup
- Configuration
- User Guide
- Components Documentation
- API Integration
- Health Check System
- Security Considerations
- Development Guidelines
- Troubleshooting
- Contributing
Overview
The Spec-Up-T Editor is a sophisticated web-based application built with Vue.js 3 that provides an intuitive interface for editing and managing specification files stored in GitHub repositories. It's designed specifically for teams working with structured documentation and specification formats, offering seamless GitHub integration and collaborative editing capabilities.
Key Benefits
- Zero Installation: Web-based interface requiring no local software installation
- GitHub Integration: Direct read/write access to GitHub repositories via API
- Collaborative: Multiple users can work on the same repository
- Spec-Focused: Optimized for specification and documentation workflows
- Health Monitoring: Built-in repository health checking and validation
Features
Core Functionality
- GitHub Authentication: Secure login using GitHub Personal Access Tokens
- Repository Management: Browse and access GitHub repositories with branch selection
- File Explorer: Navigate through specification directories with advanced filtering
- WYSIWYG Editor: Rich text editor with markdown support and live preview
- External Specifications: Manage references to external specification repositories
- Health Checking: Comprehensive repository validation and health monitoring
- Terms Management: Built-in glossary and terminology management
Advanced Features
- Visited Repository History: Automatic tracking of recently accessed repositories
- Real-time File Creation: Create new files directly through the interface
- Commit Integration: Direct Git commits with custom messages
- Responsive Design: Mobile-friendly interface using Bootstrap 5
- Analytics Integration: Optional Google Analytics tracking
- Build Information: Display build metadata and version information
Architecture
Technology Stack
- Frontend Framework: Vue.js 3 with Composition API
- Routing: Vue Router 4 for single-page application navigation
- HTTP Client: Axios for GitHub API communication
- UI Framework: Bootstrap 5 with Bootstrap Icons
- Build Tool: Vite for development and production builds
- Styling: SCSS with custom Bootstrap theme
Project Structure
src/
├── components/ # Vue components
│ ├── BackToTop.vue # Scroll-to-top functionality
│ ├── ExternalSpecsManager.vue # External specs management
│ ├── FileEditor.vue # Main file editing interface
│ ├── FileExplorer.vue # Repository file browser
│ ├── HealthCheck.vue # Repository health monitoring
│ ├── HomePage.vue # Main dashboard
│ ├── LoginPage.vue # GitHub authentication
│ ├── MainNav.vue # Navigation component
│ └── Modal.vue # Reusable modal component
├── composables/ # Vue composables
│ └── useGoogleAnalytics.js # Analytics integration
├── generated/ # Generated build files
│ └── build-info-fallback.js
├── styles/ # Styling
│ └── custom-bootstrap.scss
├── types/ # TypeScript definitions
│ └── global.d.ts
├── utils/ # Utility functions
│ ├── build-info.js
│ ├── googleAnalytics.js
│ └── visitedRepos.js
├── App.vue # Root component
└── main.js # Application entry point
Installation & Setup
Prerequisites
- Node.js: Version 16 or higher
- npm: Comes with Node.js
- GitHub Personal Access Token: With repository permissions
Local Development Setup
-
Clone the Repository
git clone https://github.com/blockchainbird/GitHubUi.git
cd GitHubUi -
Install Dependencies
npm install -
Environment Configuration
cp .env.example .envConfigure the following environment variables:
VITE_GA_MEASUREMENT_ID=your_google_analytics_id
VITE_BASE_PATH=/ -
Start Development Server
npm run dev -
Access the Application
- Open browser to
http://localhost:3000 - Use your GitHub Personal Access Token to authenticate
- Open browser to
Production Build
# Build for production
npm run build
# Preview production build
npm run preview
Deployment
The application is designed to be deployed as a static site. The build output in the dist/ directory can be served by any static file server or CDN.