Skip to content

Developer Guide

Documentation for developers working on or extending KrakenHashes.

In This Section

Getting Started

Prerequisites

  • Go 1.21+ for backend development
  • Node.js 18+ for frontend development
  • Docker and Docker Compose for testing
  • PostgreSQL 15+ for database
  • Git for version control

Development Setup

  1. Clone the repository

    git clone https://github.com/ZerkerEOD/krakenhashes.git
    cd krakenhashes
    

  2. Set up development environment

  3. Copy .env.example to .env
  4. Configure database connection
  5. Set development flags

  6. Start services

    docker-compose up -d
    

Development Workflow

Code Organization

krakenhashes/
├── backend/         # Go backend service
├── frontend/        # React frontend
├── agent/          # Go agent system
├── docs/           # Documentation
└── scripts/        # Utility scripts

Key Technologies

  • Backend: Go, Gin, GORM, JWT, WebSocket
  • Frontend: React, TypeScript, Material-UI, React Query
  • Database: PostgreSQL with migrations
  • Agent: Go, Hashcat integration, Hardware detection
  • Communication: REST API, WebSocket, TLS

Contributing Guidelines

Pre-v1.0 Status

External contributions are not being accepted until v1.0 release. This documentation is for understanding the codebase structure.

Code Standards

  • Follow Go conventions for backend code
  • Use TypeScript strictly in frontend
  • Write tests for new functionality
  • Document complex algorithms
  • Keep security in mind

Testing

  • Unit tests alongside code (*_test.go)
  • Integration tests in integration_test/
  • Frontend tests with React Testing Library
  • Manual testing with Docker environment

Architecture Principles

  1. Separation of Concerns
  2. Clear boundaries between layers
  3. Repository pattern for data access
  4. Service layer for business logic

  5. Security First

  6. Authentication on all endpoints
  7. Input validation and sanitization
  8. Secure communication channels

  9. Scalability

  10. Distributed agent architecture
  11. Efficient job scheduling
  12. Resource pooling

  13. Maintainability

  14. Clear code organization
  15. Comprehensive error handling
  16. Extensive logging

Need Help?

  • Check existing code patterns
  • Review test files for examples
  • Join Discord development channel