docs: update documentation for branding and DCL preparation
- Update application name to "Quickawards by DJ7NT" - Add DCL (DARC Community Logbook) preparation details - Document new DOK fields (my_darc_dok, darc_dok) for German awards - Update database schema documentation with DCL confirmation fields - Add DCL API endpoint to API documentation - Document multi-service confirmation display feature - Add awards system documentation - Update project structure with new services and routes Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
# Ham Radio Award Portal - Documentation
|
||||
# Quickawards by DJ7NT - Documentation
|
||||
|
||||
## Table of Contents
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
|
||||
### Overview
|
||||
|
||||
The Ham Radio Award Portal is a full-stack web application designed to help amateur radio operators track their award progress by syncing QSOs (contacts) from ARRL's Logbook of the World (LoTW).
|
||||
Quickawards by DJ7NT is a full-stack web application designed to help amateur radio operators track their award progress by syncing QSOs (contacts) from ARRL's Logbook of the World (LoTW) and preparing for future integration with DARC Community Logbook (DCL).
|
||||
|
||||
### Technology Stack
|
||||
|
||||
@@ -85,9 +85,13 @@ Main entry point that configures and starts the ElysiaJS server.
|
||||
- `POST /api/auth/login` - User login
|
||||
- `GET /api/auth/me` - Get current user
|
||||
- `PUT /api/auth/lotw-credentials` - Update LoTW credentials
|
||||
- `PUT /api/auth/dcl-credentials` - Update DCL API key (for future use)
|
||||
- `POST /api/lotw/sync` - Sync QSOs from LoTW
|
||||
- `GET /api/qsos` - Get QSOs with filtering
|
||||
- `GET /api/qsos/stats` - Get QSO statistics
|
||||
- `GET /api/awards` - Get all awards
|
||||
- `GET /api/awards/:awardId/progress` - Get award progress
|
||||
- `GET /api/awards/:awardId/entities` - Get entity breakdown
|
||||
|
||||
#### 2. Database Schema (`src/backend/db/schema/index.js`)
|
||||
|
||||
@@ -95,8 +99,9 @@ Defines the database structure using Drizzle ORM schema builder.
|
||||
|
||||
**Tables:**
|
||||
|
||||
- **users**: User accounts, authentication credentials, LoTW credentials
|
||||
- **qsos**: Amateur radio contacts in ADIF format with LoTW confirmation data
|
||||
- **users**: User accounts, authentication credentials, LoTW credentials, DCL API key
|
||||
- **qsos**: Amateur radio contacts in ADIF format with LoTW and DCL confirmation data, plus DOK fields
|
||||
- **sync_jobs**: Background job queue for async operations
|
||||
- **awards**: Award definitions with JSON rule configurations
|
||||
- **award_progress**: Cached award progress for each user
|
||||
|
||||
@@ -107,6 +112,7 @@ Defines the database structure using Drizzle ORM schema builder.
|
||||
- Password hashing with bcrypt
|
||||
- JWT token generation and validation
|
||||
- User profile management
|
||||
- LoTW and DCL credentials management
|
||||
|
||||
**LoTW Service** (`src/backend/services/lotw.service.js`)
|
||||
- Synchronization with ARRL's Logbook of the World
|
||||
@@ -116,6 +122,23 @@ Defines the database structure using Drizzle ORM schema builder.
|
||||
- Band/mode normalization
|
||||
- Error handling and retry logic
|
||||
|
||||
**DCL Service** (`src/backend/services/dcl.service.js`)
|
||||
- Stub service for future DARC Community Logbook integration
|
||||
- Prepared for when DCL provides a download API
|
||||
- Includes TODO comments for implementation steps
|
||||
|
||||
**Awards Service** (`src/backend/services/awards.service.js`)
|
||||
- Award progress calculation
|
||||
- Entity breakdown by band/mode
|
||||
- Confirmation status tracking (LoTW, DCL)
|
||||
- DXCC, WAS, VUCC award support
|
||||
|
||||
**Job Queue Service** (`src/backend/services/job-queue.service.js`)
|
||||
- Background job management
|
||||
- Job status tracking
|
||||
- One active job per user enforcement
|
||||
- Progress reporting
|
||||
|
||||
#### 4. Configuration (`src/backend/config/`)
|
||||
|
||||
- **database.js**: Database connection and client initialization
|
||||
@@ -126,11 +149,12 @@ Defines the database structure using Drizzle ORM schema builder.
|
||||
|
||||
#### 1. Pages (SvelteKit Routes)
|
||||
|
||||
- **`/`**: Dashboard with welcome message
|
||||
- **`/`**: Dashboard with welcome message and quick action cards
|
||||
- **`/auth/login`**: User login form
|
||||
- **`/auth/register`**: User registration form
|
||||
- **`/qsos`**: QSO logbook with filtering and LoTW sync
|
||||
- **`/settings`**: LoTW credentials management
|
||||
- **`/qsos`**: QSO logbook with filtering, DOK fields, and multi-service confirmation display
|
||||
- **`/awards`**: Awards progress tracking (DXCC, WAS, VUCC)
|
||||
- **`/settings`**: LoTW and DCL credentials management
|
||||
|
||||
#### 2. Layout (`+layout.svelte`)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user