initial config
This commit is contained in:
95
README.md
95
README.md
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user