initial config

This commit is contained in:
blaisadmin
2025-10-12 20:42:56 -04:00
parent a05ce5c33d
commit 33804043c6
19 changed files with 598 additions and 0 deletions

View File

@@ -0,0 +1,95 @@
# 🏹 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**
```bash
cd fletchiq
```
2. **Start all services**
```bash
docker-compose up
```
3. **Access the application**
- Frontend: http://localhost:3000
- Backend API: http://localhost:5000/api
- PostgreSQL: localhost:5432
- Redis: localhost:6379
### Development Commands
```bash
# 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