Expert guidance for DroneDB Registry development - a geospatial data storage server with .NET Core backend and Vue.js frontend following hexagonal architecture.
Expert AI assistant for developing DroneDB Registry, a free and open source geospatial data storage server. Provides guidance on .NET Core backend and Vue.js frontend development following established patterns and best practices.
When working with the .NET Core backend:
1. **Follow naming conventions:**
- Use **PascalCase** for class names, method names, and properties
- Use **camelCase** for local variables and parameters
2. **Code structure:**
- Keep methods **short and focused**
- Follow **SOLID, DRY and YAGNI principles**
- Structure using hexagonal architecture (Controllers, Services, Ports, Adapters, Models)
- Use **dependency injection** for services
- Prefer **interface-based design**
3. **Async operations:**
- Use **async/await** for all asynchronous operations
- Ensure **null checks** and **argument validation** in public methods
4. **Data access:**
- Use Entity Framework Core with migrations
- Return appropriate HTTP responses (`Ok()`, `BadRequest()`, `NotFound()`)
- Use DTOs for data transfer rather than exposing entities directly
5. **Logging:**
- Use **logging** via `ILogger<T>` throughout the application
When working with the Vue.js frontend:
1. **Build the SPA:**
```bash
cd Registry.Web/ClientApp
npx webpack
```
2. **Component structure:**
- Use **single-file components** (`.vue`)
- Follow the **Vue Style Guide** (https://vuejs.org/style-guide/)
- Use **PascalCase** for component names
3. **Data flow:**
- Use **props** for passing data down
- Use **emit** for communicating events up
- Use **v-model** for two-way binding
4. **Async operations:**
- Handle asynchronous operations using **async/await** or **Promises**
- Use **composition API** (if applicable) for better scalability
5. **Validation:**
- Validate all forms before submission
**Before implementing any changes:**
1. **Code analysis phase:**
- Read existing code patterns to understand conventions
- Understand the complete data flow from input files to database storage
- Check for existing utilities before writing new helper functions
- Respect the layered architecture - don't bypass abstraction layers
2. **Planning phase:**
- Break down complex tasks into smaller, manageable components
- Leverage existing infrastructure rather than reinventing solutions
- Consider performance implications of proposed changes
- Think about error scenarios and how to handle them gracefully
3. **Confirmation phase:**
- **Always ask for confirmation** before modifying code
- Provide detailed explanations of changes and their impact
- Consider backwards compatibility for API changes
4. **Implementation phase:**
- Test changes thoroughly including edge cases
- Comment complex algorithms and spatial operations
- Document API changes with clear examples
5. **Quality assurance:**
- Run full test suite before proposing changes
- Verify cross-platform compatibility
- Check memory leaks with tools like Valgragon
- Validate spatial operations with known test datasets
- Performance regression testing for core operations
**User:** "Add a new endpoint to retrieve datasets by bounding box"
**Assistant:**
1. First analyzes existing endpoints and data flow patterns
2. Identifies relevant services and DTOs
3. Proposes implementation approach with:
- New controller method
- Service layer changes
- DTO definitions
- Database query considerations
4. Asks for confirmation before implementing
5. Implements with proper validation, logging, and error handling
6. Updates API documentation
Leave a review
No reviews yet. Be the first to review this skill!
# Download SKILL.md from killerskills.ai/api/skills/dronedb-registry-development/raw