Skip to content

Commit ddb8260

Browse files
authored
Merge pull request #299 from HyperloopUPV-H8/docs-reorganization
Docs reorganization
2 parents ca8dba4 + 7ffd6f2 commit ddb8260

9 files changed

Lines changed: 977 additions & 3 deletions

File tree

DOCUMENTATION_REORGANIZATION.md

Lines changed: 124 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,124 @@
1+
# Documentation Reorganization Summary
2+
3+
This document outlines the reorganization of project documentation from scattered files to a centralized `docs/` folder structure.
4+
5+
## 📁 New Documentation Structure
6+
7+
```
8+
docs/
9+
├── README.md # Main documentation index
10+
├── architecture/
11+
│ └── README.md # System architecture overview
12+
├── development/
13+
│ ├── DEVELOPMENT.md # Development setup guide
14+
│ ├── CROSS_PLATFORM_DEV_SUMMARY.md # Cross-platform scripts documentation
15+
│ └── scripts.md # Scripts reference guide
16+
├── guides/
17+
│ └── getting-started.md # New user getting started guide
18+
└── troubleshooting/
19+
└── BLCU_FIX_SUMMARY.md # BLCU repair documentation
20+
```
21+
22+
## 📋 File Migrations
23+
24+
### Moved Files
25+
| Original Location | New Location | Status |
26+
|-------------------|--------------|--------|
27+
| `DEVELOPMENT.md` | `docs/development/DEVELOPMENT.md` | ✅ Moved |
28+
| `CROSS_PLATFORM_DEV_SUMMARY.md` | `docs/development/CROSS_PLATFORM_DEV_SUMMARY.md` | ✅ Moved |
29+
| `scripts/README.md` | `docs/development/scripts.md` | ✅ Moved |
30+
| `backend/BLCU_FIX_SUMMARY.md` | `docs/troubleshooting/BLCU_FIX_SUMMARY.md` | ✅ Moved |
31+
32+
### New Files Created
33+
| File | Purpose |
34+
|------|---------|
35+
| `docs/README.md` | Main documentation index with navigation |
36+
| `docs/architecture/README.md` | System architecture overview |
37+
| `docs/guides/getting-started.md` | Comprehensive new user guide |
38+
| `scripts/README.md` | Quick reference pointing to full docs |
39+
40+
### Updated Files
41+
| File | Changes |
42+
|------|---------|
43+
| `README.md` | Added documentation section with quick links |
44+
| `docs/development/scripts.md` | Updated paths for new location |
45+
46+
## 🎯 Benefits of New Structure
47+
48+
### 1. **Improved Organization**
49+
- Clear categorization by purpose (development, architecture, guides, troubleshooting)
50+
- Logical hierarchy that scales as documentation grows
51+
- Centralized location for all project documentation
52+
53+
### 2. **Better Discoverability**
54+
- Single entry point through `docs/README.md`
55+
- Clear navigation between related documents
56+
- Quick links in main README for common tasks
57+
58+
### 3. **Enhanced User Experience**
59+
- Dedicated getting started guide for new users
60+
- Platform-specific guidance clearly organized
61+
- Troubleshooting docs easily accessible
62+
63+
### 4. **Maintainability**
64+
- Related documentation grouped together
65+
- Easier to update and maintain consistency
66+
- Clear ownership and responsibility areas
67+
68+
## 🚀 How to Use the New Structure
69+
70+
### For New Users
71+
1. Start with [`docs/guides/getting-started.md`](docs/guides/getting-started.md)
72+
2. Follow platform-specific setup in [`docs/development/DEVELOPMENT.md`](docs/development/DEVELOPMENT.md)
73+
3. Refer to troubleshooting docs if needed
74+
75+
### For Developers
76+
1. Check [`docs/development/`](docs/development/) for all development-related docs
77+
2. Use [`docs/architecture/`](docs/architecture/) to understand system design
78+
3. Reference [`docs/development/scripts.md`](docs/development/scripts.md) for tooling
79+
80+
### For Contributors
81+
1. Review existing documentation structure before adding new docs
82+
2. Place new documentation in appropriate category folders
83+
3. Update main index (`docs/README.md`) when adding major new sections
84+
85+
## 📝 Documentation Guidelines
86+
87+
### Placement Rules
88+
- **Development docs**`docs/development/`
89+
- **Architecture docs**`docs/architecture/`
90+
- **User guides**`docs/guides/`
91+
- **Troubleshooting**`docs/troubleshooting/`
92+
- **Component-specific** → Keep in respective component directories
93+
94+
### Linking Guidelines
95+
- Use relative paths for internal documentation links
96+
- Update `docs/README.md` index when adding major new documents
97+
- Cross-reference related documentation where helpful
98+
99+
### File Naming
100+
- Use lowercase with hyphens: `getting-started.md`
101+
- Use descriptive names that indicate content purpose
102+
- Keep README.md files for directory overviews
103+
104+
## 🔗 Key Entry Points
105+
106+
### Primary Documentation
107+
- **[docs/README.md](docs/README.md)** - Main documentation hub
108+
- **[README.md](README.md)** - Project overview with quick start
109+
110+
### Quick Access
111+
- **New Users**: [Getting Started Guide](docs/guides/getting-started.md)
112+
- **Developers**: [Development Setup](docs/development/DEVELOPMENT.md)
113+
- **Troubleshooting**: [Common Issues](docs/troubleshooting/BLCU_FIX_SUMMARY.md)
114+
115+
## 🎉 Migration Complete
116+
117+
The documentation reorganization provides:
118+
- ✅ Better organization and navigation
119+
- ✅ Improved new user experience
120+
- ✅ Clearer separation of concerns
121+
- ✅ Scalable structure for future growth
122+
- ✅ Maintained backward compatibility through redirect notes
123+
124+
All existing functionality remains accessible while providing a much better documentation experience for users, developers, and contributors.

README.md

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ Download the latest release, unzip it and run the executable compatible with you
1414

1515
### For Developers
1616

17-
See [DEVELOPMENT.md](./DEVELOPMENT.md) for detailed setup instructions. Quick start:
17+
See our comprehensive [Documentation](./docs/README.md) or jump to [Getting Started](./docs/guides/getting-started.md). Quick start:
1818

1919
```bash
2020
# Clone and setup
@@ -34,7 +34,17 @@ When using the Control Station make sure that you have configured your IP as the
3434

3535
To change the ADJ branch from `main`, change the option `adj/branch` at the end of the `config.toml` with the name of the branch you want to use or leave it blank if you'll be making use of a custom ADJ.
3636

37-
### Contributing
37+
## Documentation
38+
39+
📚 **[Complete Documentation](./docs/README.md)** - All guides and references
40+
41+
### Quick Links
42+
- 🚀 **[Getting Started](./docs/guides/getting-started.md)** - New user guide
43+
- 🛠️ **[Development Setup](./docs/development/DEVELOPMENT.md)** - Developer environment setup
44+
- 🏗️ **[Architecture](./docs/architecture/README.md)** - System design overview
45+
- 🔧 **[Troubleshooting](./docs/troubleshooting/BLCU_FIX_SUMMARY.md)** - Common issues and fixes
46+
47+
## Contributing
3848

3949
See [CONTRIBUTING.md](./CONTRIBUTING.md) for ways to contribute to the Control Station.
4050

docs/README.md

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
# Hyperloop H10 Documentation
2+
3+
Welcome to the Hyperloop UPV H10 Control Station documentation. This directory contains comprehensive guides for developers, operators, and contributors.
4+
5+
## 📚 Documentation Structure
6+
7+
### 🛠️ Development
8+
- **[Development Setup](development/DEVELOPMENT.md)** - Complete guide to setting up your development environment
9+
- **[Cross-Platform Scripts](development/CROSS_PLATFORM_DEV_SUMMARY.md)** - Cross-platform development script documentation
10+
- **[Scripts Reference](development/scripts.md)** - Detailed reference for all development scripts
11+
12+
### 🏗️ Architecture
13+
- **[System Overview](architecture/README.md)** - High-level system architecture
14+
- **[Backend Architecture](architecture/backend.md)** - Go backend design and components
15+
- **[Frontend Architecture](architecture/frontend.md)** - React frontend applications structure
16+
- **[Communication Protocols](architecture/protocols.md)** - WebSocket and network communication
17+
18+
### 📖 Guides
19+
- **[Getting Started](guides/getting-started.md)** - Quick start guide for new users
20+
- **[Configuration](guides/configuration.md)** - System configuration and ADJ specifications
21+
- **[Deployment](guides/deployment.md)** - Production deployment instructions
22+
- **[Testing](guides/testing.md)** - Testing strategies and tools
23+
24+
### 🔧 Troubleshooting
25+
- **[BLCU Fix Summary](troubleshooting/BLCU_FIX_SUMMARY.md)** - Boot Loader Control Unit repair documentation
26+
- **[Common Issues](troubleshooting/common-issues.md)** - Frequently encountered problems and solutions
27+
- **[Platform-Specific Issues](troubleshooting/platform-issues.md)** - OS-specific troubleshooting
28+
29+
## 🚀 Quick Start
30+
31+
New to the project? Start here:
32+
33+
1. **[Getting Started Guide](guides/getting-started.md)** - Overview and first steps
34+
2. **[Development Setup](development/DEVELOPMENT.md)** - Set up your development environment
35+
3. **[Architecture Overview](architecture/README.md)** - Understand the system design
36+
37+
## 📋 Additional Resources
38+
39+
### Root Level Documentation
40+
- **[README.md](../README.md)** - Project overview and quick setup
41+
- **[CONTRIBUTING.md](../CONTRIBUTING.md)** - How to contribute to the project
42+
- **[CLAUDE.md](../CLAUDE.md)** - AI assistant instructions for code development
43+
44+
### Component-Specific Documentation
45+
- **[Common Frontend](../common-front/README.md)** - Shared React component library
46+
- **[Backend Captures](../backend/captures/README.md)** - Network packet capture samples
47+
48+
### GitHub Templates
49+
- **[Bug Reports](../.github/ISSUE_TEMPLATE/bug.md)** - Bug report template
50+
- **[Feature Requests](../.github/ISSUE_TEMPLATE/feature.md)** - Feature request template
51+
- **[Task Templates](../.github/ISSUE_TEMPLATE/task.md)** - Task template
52+
53+
## 🔄 Documentation Updates
54+
55+
This documentation is actively maintained. If you find errors or have suggestions:
56+
57+
1. Check existing [issues](https://github.com/HyperloopUPV-H8/h9-backend/issues)
58+
2. Create a new issue using the appropriate template
59+
3. Submit a pull request with improvements
60+
61+
## 📝 Contributing to Documentation
62+
63+
When adding new documentation:
64+
65+
1. **Development docs**`docs/development/`
66+
2. **Architecture docs**`docs/architecture/`
67+
3. **User guides**`docs/guides/`
68+
4. **Troubleshooting**`docs/troubleshooting/`
69+
5. **Component-specific** → Keep in respective component directories
70+
71+
Follow the existing markdown style and include:
72+
- Clear headings and structure
73+
- Code examples where applicable
74+
- Cross-references to related documentation
75+
- Platform-specific notes when relevant
76+
77+
---
78+
79+
*Last updated: $(date '2025-06-03')*

docs/architecture/README.md

Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
1+
# System Architecture Overview
2+
3+
The Hyperloop H10 Control Station is a real-time monitoring and control system designed for managing pod operations during testing and competition runs.
4+
5+
## High-Level Architecture
6+
7+
```
8+
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
9+
│ │ │ │ │ │
10+
│ Pod Sensors │◄──►│ Backend │◄──►│ Frontend │
11+
│ & Boards │ │ (Go Server) │ │ (React Apps) │
12+
│ │ │ │ │ │
13+
└─────────────────┘ └─────────────────┘ └─────────────────┘
14+
15+
16+
┌─────────────────┐
17+
│ │
18+
│ Data Logger │
19+
│ & Storage │
20+
│ │
21+
└─────────────────┘
22+
```
23+
24+
## Core Components
25+
26+
### 1. Backend (Go)
27+
- **Location**: `backend/`
28+
- **Purpose**: Real-time data processing and communication hub
29+
- **Key Features**:
30+
- TCP/UDP packet processing
31+
- WebSocket server for frontend communication
32+
- TFTP server for firmware updates
33+
- Data logging and storage
34+
- Board abstraction and management
35+
36+
### 2. Frontend Applications (React/TypeScript)
37+
- **Common Frontend**: `common-front/` - Shared component library
38+
- **Control Station**: `control-station/` - Main operational interface
39+
- **Ethernet View**: `ethernet-view/` - Network debugging and monitoring
40+
41+
### 3. Supporting Tools
42+
- **Packet Sender**: `packet-sender/` - Testing and simulation tool
43+
- **Updater**: `updater/` - System update management
44+
- **Scripts**: `scripts/` - Development and deployment automation
45+
46+
## Data Flow
47+
48+
1. **Sensor Data Collection**
49+
- Pod sensors send data via Ethernet/TCP
50+
- Backend receives and parses packets according to ADJ specifications
51+
52+
2. **Real-time Processing**
53+
- Data validation and transformation
54+
- State management and safety checks
55+
- Message routing and broadcasting
56+
57+
3. **Frontend Display**
58+
- WebSocket communication for real-time updates
59+
- Interactive dashboards and controls
60+
- Data visualization and monitoring
61+
62+
4. **Data Persistence**
63+
- CSV logging for analysis
64+
- Configuration management
65+
- Historical data storage
66+
67+
## Technology Stack
68+
69+
### Backend
70+
- **Language**: Go 1.21+
71+
- **Networking**: TCP/UDP sockets, WebSocket (Gorilla)
72+
- **Packet Capture**: libpcap for network monitoring
73+
- **Concurrency**: Goroutines and channels for real-time processing
74+
75+
### Frontend
76+
- **Framework**: React 18 with TypeScript
77+
- **Build Tool**: Vite
78+
- **State Management**: Redux Toolkit, Zustand
79+
- **Styling**: SCSS Modules
80+
- **Communication**: WebSocket, HTTP APIs
81+
82+
### Development Tools
83+
- **Version Control**: Git with GitHub workflows
84+
- **Package Management**: Go modules, npm
85+
- **Build System**: Make, platform-specific scripts
86+
- **Testing**: Go testing, frontend unit tests
87+
88+
## Security Considerations
89+
90+
- Network communication validation
91+
- Input sanitization and validation
92+
- Access control for critical operations
93+
- Secure firmware update mechanisms
94+
95+
## Scalability Features
96+
97+
- Modular board management system
98+
- Configurable ADJ specifications
99+
- Plugin-based architecture for new sensors
100+
- Horizontal scaling capabilities
101+
102+
## Related Documentation
103+
104+
- [Backend Architecture](backend.md) - Detailed backend design
105+
- [Frontend Architecture](frontend.md) - Frontend application structure
106+
- [Communication Protocols](protocols.md) - Network and data protocols
107+
- [Development Setup](../development/DEVELOPMENT.md) - Getting started guide

0 commit comments

Comments
 (0)