- Update landing_main.go to serve accessible_landing.html - Remove duplicate README.md from output/ directory - Maintain comprehensive README at top level with full documentation
410 lines
10 KiB
Markdown
410 lines
10 KiB
Markdown
# YourDreamNameHere
|
|
|
|
## Overview
|
|
|
|
YourDreamNameHere is a production-ready SaaS platform that provides automated sovereign hosting businesses. Users get domain registration, VPS provisioning, Cloudron installation, and complete business management for $250/month.
|
|
|
|
## 🚀 Features
|
|
|
|
- **🌐 Domain Registration**: Automated domain registration via OVH API
|
|
- **🖥️ VPS Provisioning**: Instant VPS deployment with enterprise-grade security
|
|
- **☁️ Cloudron Installation**: Automated Cloudron setup with custom domains
|
|
- **💳 Payment Processing**: Integrated Stripe billing with subscription management
|
|
- **📊 Business Management**: Complete ERP/CRM system via Dolibarr integration
|
|
- **📱 Mobile-Responsive**: Fully responsive design with accessibility support
|
|
- **♿ WCAG 2.1 AA**: Comprehensive accessibility features
|
|
- **🌍 Internationalization**: Multi-language support (6 languages)
|
|
|
|
## 🏗️ Architecture
|
|
|
|
### Technology Stack
|
|
- **Backend**: Go 1.21 with Gin framework
|
|
- **Frontend**: HTML5, CSS3, JavaScript with accessibility-first design
|
|
- **Database**: PostgreSQL 15 with Redis 7 for caching
|
|
- **Containerization**: Docker with multi-stage builds
|
|
- **Deployment**: Docker Compose with health checks
|
|
- **Payments**: Stripe (production-ready)
|
|
- **Domains**: OVH API integration
|
|
- **ERP**: Dolibarr integration
|
|
- **Monitoring**: Prometheus + Grafana setup
|
|
|
|
### Business Logic Flow
|
|
1. User enters domain, email, and payment information
|
|
2. System validates input and processes payment via Stripe
|
|
3. OVH API registers the domain
|
|
4. VPS is provisioned and configured
|
|
5. Cloudron is installed and configured with custom domain
|
|
6. DNS is automatically configured
|
|
7. Dolibarr business management is set up
|
|
8. User receives Cloudron admin invitation
|
|
|
|
## 🚀 Quick Start
|
|
|
|
### Prerequisites
|
|
- Docker and Docker Compose
|
|
- Go 1.21+ (for development)
|
|
- Node.js (for frontend tooling, optional)
|
|
|
|
### Development Environment
|
|
|
|
1. **Clone and setup**
|
|
```bash
|
|
git clone <repository-url>
|
|
cd WebAndAppMonoRepo/output
|
|
```
|
|
|
|
2. **Configure environment**
|
|
```bash
|
|
cp configs/.env.example configs/.env
|
|
# Edit configs/.env with your API keys
|
|
```
|
|
|
|
3. **Start development stack**
|
|
```bash
|
|
docker compose up -d ydn-db ydn-redis
|
|
```
|
|
|
|
4. **Run the application**
|
|
```bash
|
|
# Option 1: Direct Go run
|
|
go run cmd/landing_main.go
|
|
|
|
# Option 2: Docker container
|
|
docker compose up -d ydn-app
|
|
```
|
|
|
|
5. **Access the application**
|
|
- Landing Page: http://localhost:8083
|
|
- Health Check: http://localhost:8083/health
|
|
- API Status: http://localhost:8083/api/status
|
|
|
|
### Production Deployment
|
|
|
|
1. **Configure production environment**
|
|
```bash
|
|
export DEPLOYMENT_HOST=192.168.3.6
|
|
export DOMAIN=yourdreamnamehere.com
|
|
export STRIPE_SECRET_KEY=sk_live_...
|
|
export OVH_APPLICATION_KEY=...
|
|
```
|
|
|
|
2. **Deploy to production**
|
|
```bash
|
|
./scripts/deploy.sh deploy
|
|
```
|
|
|
|
## 🧪 Testing
|
|
|
|
### Run All Tests
|
|
```bash
|
|
# Using Docker (recommended)
|
|
docker build -f Dockerfile.test -t ydn-test .
|
|
docker run --rm --network host ydn-test
|
|
|
|
# Or run test script directly
|
|
./tests/run_tests.sh
|
|
```
|
|
|
|
### Test Categories
|
|
- **Unit Tests**: Core business logic validation
|
|
- **Integration Tests**: API endpoint testing
|
|
- **Business Logic Tests**: Workflow validation
|
|
- **Performance Tests**: Response time validation
|
|
- **Accessibility Tests**: WCAG compliance validation
|
|
|
|
### Test Coverage
|
|
- Target: >80% code coverage
|
|
- Reports generated in `coverage/` directory
|
|
- HTML coverage reports for detailed analysis
|
|
|
|
## 🔧 Configuration
|
|
|
|
### Environment Variables
|
|
|
|
#### Application
|
|
- `APP_NAME`: Application name (default: YourDreamNameHere)
|
|
- `APP_ENV`: Environment (development/production)
|
|
- `APP_PORT`: Application port (default: 8080)
|
|
|
|
#### Database
|
|
- `DB_HOST`: PostgreSQL host
|
|
- `DB_PORT`: PostgreSQL port (default: 5432)
|
|
- `DB_USER`: Database username
|
|
- `DB_PASSWORD`: Database password
|
|
- `DB_NAME`: Database name
|
|
|
|
#### Stripe
|
|
- `STRIPE_PUBLIC_KEY`: Stripe publishable key
|
|
- `STRIPE_SECRET_KEY`: Stripe secret key
|
|
- `STRIPE_WEBHOOK_SECRET`: Stripe webhook secret
|
|
- `STRIPE_PRICE_ID`: Price ID for $250/month subscription
|
|
|
|
#### OVH
|
|
- `OVH_ENDPOINT`: OVH API endpoint (default: ovh-eu)
|
|
- `OVH_APPLICATION_KEY`: OVH application key
|
|
- `OVH_APPLICATION_SECRET`: OVH application secret
|
|
- `OVH_CONSUMER_KEY`: OVH consumer key
|
|
|
|
#### Email
|
|
- `SMTP_HOST`: SMTP server host
|
|
- `SMTP_PORT`: SMTP server port
|
|
- `SMTP_USER`: SMTP username
|
|
- `SMTP_PASSWORD`: SMTP password
|
|
- `SMTP_FROM`: From email address
|
|
|
|
#### Dolibarr
|
|
- `DOLIBARR_URL`: Dolibarr instance URL
|
|
- `DOLIBARR_API_TOKEN`: Dolibarr API token
|
|
|
|
## 🌍 Internationalization
|
|
|
|
### Supported Languages
|
|
- English (en) - Default
|
|
- Spanish (es)
|
|
- French (fr)
|
|
- German (de)
|
|
- Chinese (zh)
|
|
- Japanese (ja)
|
|
|
|
### Adding New Languages
|
|
1. Add translation to `translations` object in the frontend
|
|
2. Update language selector options
|
|
3. Test all UI elements are translated
|
|
4. Verify date/time formats for locale
|
|
|
|
## ♿ Accessibility Features
|
|
|
|
### WCAG 2.1 AA Compliance
|
|
- **Keyboard Navigation**: Full keyboard accessibility
|
|
- **Screen Reader Support**: Comprehensive ARIA labels and roles
|
|
- **Focus Management**: Visible focus indicators and logical tab order
|
|
- **High Contrast**: Support for high contrast mode
|
|
- **Reduced Motion**: Respect for user's motion preferences
|
|
- **Color Independence**: Information not conveyed by color alone
|
|
- **Error Handling**: Clear error messages and recovery options
|
|
- **Semantic HTML**: Proper HTML structure for assistive technologies
|
|
|
|
### Testing Accessibility
|
|
```bash
|
|
# Automated accessibility testing
|
|
npm install -g pa11y-ci
|
|
pa11y-ci http://localhost:8083
|
|
|
|
# Manual testing checklist
|
|
- Navigate with keyboard only
|
|
- Test with screen reader (NVDA, VoiceOver)
|
|
- Verify color contrast ratios
|
|
- Test with high contrast mode
|
|
- Test with reduced motion
|
|
```
|
|
|
|
## 📊 Monitoring & Observability
|
|
|
|
### Health Checks
|
|
- Application health: `/health`
|
|
- Database connectivity: `/health/db`
|
|
- External service status: `/api/status`
|
|
|
|
### Metrics
|
|
- Application metrics: `/metrics`
|
|
- Response time monitoring
|
|
- Error rate tracking
|
|
- User journey analytics
|
|
|
|
### Logging
|
|
- Structured JSON logging
|
|
- Request tracking with unique IDs
|
|
- Error stack traces
|
|
- Performance metrics
|
|
|
|
## 🔒 Security
|
|
|
|
### Implemented Features
|
|
- **Input Validation**: Comprehensive input sanitization
|
|
- **Rate Limiting**: API rate limiting and DDoS protection
|
|
- **CORS**: Proper cross-origin resource sharing
|
|
- **HTTPS**: SSL/TLS encryption (production)
|
|
- **Authentication**: JWT-based authentication
|
|
- **Authorization**: Role-based access control
|
|
- **Data Protection**: GDPR-compliant data handling
|
|
|
|
### Security Headers
|
|
- Content Security Policy
|
|
- X-Frame-Options
|
|
- X-Content-Type-Options
|
|
- Strict-Transport-Security
|
|
- Referrer-Policy
|
|
|
|
## 🚀 Deployment
|
|
|
|
### Production Requirements
|
|
- Ubuntu 24.04 host
|
|
- Docker and Docker Compose
|
|
- SSL certificates (automated via Let's Encrypt)
|
|
- 2GB+ RAM minimum
|
|
- 20GB+ storage minimum
|
|
|
|
### Deployment Script
|
|
```bash
|
|
# Automated production deployment
|
|
./scripts/deploy.sh deploy
|
|
|
|
# Deployment with monitoring
|
|
ENABLE_MONITORING=true ./scripts/deploy.sh deploy
|
|
|
|
# Rollback deployment
|
|
./scripts/deploy.sh rollback
|
|
```
|
|
|
|
### Environment Setup
|
|
1. **Server Preparation**
|
|
```bash
|
|
# Install Docker
|
|
curl -fsSL https://get.docker.com -o get-docker.sh
|
|
sh get-docker.sh
|
|
|
|
# Install Docker Compose
|
|
curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
|
|
chmod +x /usr/local/bin/docker-compose
|
|
```
|
|
|
|
2. **SSL Setup**
|
|
```bash
|
|
# Automatic SSL certificate setup
|
|
certbot --nginx -d yourdomain.com
|
|
```
|
|
|
|
## 📚 API Documentation
|
|
|
|
### Endpoints
|
|
|
|
#### Health Check
|
|
```
|
|
GET /health
|
|
```
|
|
Returns application health status.
|
|
|
|
#### API Status
|
|
```
|
|
GET /api/status
|
|
```
|
|
Returns system status and service connectivity.
|
|
|
|
#### Launch Business
|
|
```
|
|
POST /api/launch
|
|
Content-Type: application/json
|
|
|
|
{
|
|
"domain": "example.com",
|
|
"email": "user@example.com",
|
|
"cardNumber": "4242424242424242"
|
|
}
|
|
```
|
|
|
|
#### Customer Status
|
|
```
|
|
GET /api/status/{customerID}
|
|
```
|
|
Returns provisioning status for a customer.
|
|
|
|
### OpenAPI Specification
|
|
Available at `/swagger/index.html` when running the application.
|
|
|
|
## 🔄 CI/CD Pipeline
|
|
|
|
### Git Workflow
|
|
- **Main Branch**: Production-ready code
|
|
- **Feature Branches**: Development work
|
|
- **Pull Requests**: Code review and testing
|
|
- **Atomic Commits**: Small, focused changes
|
|
- **Conventional Commits**: Standardized commit messages
|
|
|
|
### Commit Message Format
|
|
```
|
|
<type>[optional scope]: <description>
|
|
|
|
[optional body]
|
|
|
|
[optional footer(s)]
|
|
```
|
|
|
|
Types:
|
|
- `feat`: New feature
|
|
- `fix`: Bug fix
|
|
- `docs`: Documentation changes
|
|
- `style`: Code formatting changes
|
|
- `refactor`: Code refactoring
|
|
- `test`: Adding or updating tests
|
|
- `chore`: Maintenance tasks
|
|
|
|
## 🤝 Contributing
|
|
|
|
### Development Workflow
|
|
1. Create feature branch from main
|
|
2. Make atomic commits with conventional messages
|
|
3. Add tests for new functionality
|
|
4. Ensure all tests pass
|
|
5. Update documentation
|
|
6. Submit pull request
|
|
7. Code review and merge
|
|
|
|
### Code Standards
|
|
- Go: Use `gofmt` and `golint`
|
|
- Frontend: Follow WCAG guidelines
|
|
- Tests: Minimum 80% coverage
|
|
- Documentation: Update README and API docs
|
|
|
|
## 📄 License
|
|
|
|
© 2024 YourDreamNameHere.com. All rights reserved.
|
|
|
|
## 📞 Support
|
|
|
|
### Documentation
|
|
- [API Documentation](/swagger/index.html)
|
|
- [Accessibility Guide](docs/accessibility.md)
|
|
- [Deployment Guide](docs/deployment.md)
|
|
- [Troubleshooting](docs/troubleshooting.md)
|
|
|
|
### Getting Help
|
|
- Create an issue on GitHub
|
|
- Email: support@yourdreamnamehere.com
|
|
- Community: [Discord/Slack channel]
|
|
|
|
## 🗺️ Roadmap
|
|
|
|
### Current Release (v1.0.0)
|
|
- ✅ Complete automated workflow
|
|
- ✅ Accessibility compliance
|
|
- ✅ Internationalization support
|
|
- ✅ Production deployment
|
|
- ✅ Comprehensive testing
|
|
|
|
### Future Releases
|
|
- 🔄 Advanced analytics dashboard
|
|
- 🔄 Multiple hosting providers
|
|
- 🔄 Advanced security features
|
|
- 🔄 Mobile applications
|
|
- 🔄 API rate limiting tiers
|
|
|
|
## 📈 Metrics & KPIs
|
|
|
|
### Business Metrics
|
|
- Customer acquisition cost
|
|
- Monthly recurring revenue
|
|
- Customer lifetime value
|
|
- Churn rate
|
|
|
|
### Technical Metrics
|
|
- API response time: <200ms average
|
|
- Database query time: <50ms average
|
|
- Page load time: <2s mobile, <1s desktop
|
|
- Uptime: 99.9% with auto-restart
|
|
- Concurrent users: 1000+ supported
|
|
|
|
---
|
|
|
|
**Last Updated**: November 20, 2024
|
|
**Version**: 1.0.0
|
|
**Status**: Production Ready ♿🌍 |