2025-10-12 20:42:56 -04:00
2025-10-12 20:42:56 -04:00
2025-10-12 20:42:56 -04:00
2025-10-12 20:42:56 -04:00
2025-10-12 20:42:56 -04:00

🏹 FletchIQ - Archery Scoring Application

A modern, secure, and extensible archery tournament scoring system built with React, TypeScript, Node.js, and PostgreSQL.

Quick Start

Prerequisites

  • Ubuntu/Linux
  • Docker and Docker Compose
  • Git

Setup

  1. Navigate to project
cd fletchiq
  1. Start all services
docker-compose up
  1. Access the application

Development Commands

# View logs
docker-compose logs -f backend
docker-compose logs -f frontend

# Stop all services
docker-compose down

# Rebuild containers
docker-compose build --no-cache

# Reset database
docker-compose down -v
docker-compose up

Project Structure

fletchiq/
├── backend/                 # Node.js/Express API
│   ├── src/
│   │   ├── routes/         # API endpoints
│   │   ├── controllers/    # Request handlers
│   │   ├── services/       # Business logic
│   │   ├── middleware/     # Express middleware
│   │   ├── models/         # TypeORM entities
│   │   └── utils/          # Helper functions
│   ├── database/           # SQL migrations
│   └── tests/              # Unit & integration tests
├── frontend/               # React application
│   ├── src/
│   │   ├── components/    # React components
│   │   ├── pages/         # Page components
│   │   ├── hooks/         # Custom React hooks
│   │   ├── services/      # API client
│   │   └── types/         # TypeScript types
│   └── public/            # Static assets
└── docker-compose.yml     # Service orchestration

Next Steps

  1. Implement authentication routes
  2. Create tournament CRUD endpoints
  3. Build scoring input UI
  4. Add real-time leaderboard with WebSockets
  5. Implement analytics dashboard

Security

  • JWT token-based authentication
  • Bcrypt password hashing
  • CORS and rate limiting
  • Input validation with Zod
  • Row-level security in database

Contributing

Follow the architecture guide and ensure all code is:

  • Type-safe (TypeScript)
  • Well-tested
  • Documented
  • Following the existing patterns
Description
Repo for FlightIQ
Readme 30 KiB
Languages
TypeScript 76.2%
CSS 9.5%
HTML 6.1%
JavaScript 5.3%
Dockerfile 2.9%