Initial commit from gitea_uploader script

This commit is contained in:
bizzle
2025-08-11 15:52:32 -04:00
commit c913946c08
32 changed files with 8813 additions and 0 deletions
+86
View File
@@ -0,0 +1,86 @@
# Coastal Contracting Timesheet App
A modern, responsive timesheet application built with React for tracking work hours and generating professional PDF timesheets.
## Features
- **Weekly Time Tracking**: Track work hours for each day of the week
- **Dynamic Date Navigation**: Navigate between weeks with easy-to-use controls
- **Homeowner Management**: Default homeowners plus ability to add custom names
- **Dark/Light Mode**: Toggle between themes with persistent preference
- **PDF Export**: Generate and download professional timesheet PDFs
- **Local Storage**: Automatically saves timesheet data and custom homeowners
- **Responsive Design**: Works on desktop and mobile devices
## Getting Started
### Prerequisites
- Node.js (version 14 or higher)
- npm or yarn
### Installation
1. Clone the repository
2. Install dependencies:
```bash
npm install
```
3. Start the development server:
```bash
npm run dev
```
4. Open [http://localhost:5173](http://localhost:5173) in your browser
### Building for Production
```bash
npm run build
npm run preview
```
## Usage
1. **Select Week**: Use the date picker at the top to navigate between weeks
2. **Enter Time Data**: For each day, fill in:
- Work Description: What work was performed
- Hours Worked: Number of hours (supports decimals)
- Homeowner: Select from dropdown or add custom names
3. **Theme Toggle**: Click the sun/moon icon in the top-right to switch themes
4. **Export PDF**: Click "Download PDF" to generate a professional timesheet
## Data Storage
- All timesheet data is stored locally in your browser
- Custom homeowner names are preserved across sessions
- Each week's data is stored separately
## Tech Stack
- **Frontend**: React with Vite
- **Styling**: Tailwind CSS
- **PDF Generation**: @react-pdf/renderer
- **Icons**: Lucide React
- **Storage**: Browser localStorage
## Project Structure
```
src/
├── components/ # React components
│ ├── TimeSheet.jsx # Main timesheet interface
│ ├── DatePicker.jsx # Week navigation
│ ├── TimeEntryRow.jsx # Individual day entry
│ ├── HomeownerDropdown.jsx # Name selection
│ ├── ThemeToggle.jsx # Dark/light mode toggle
│ ├── PDFExport.jsx # PDF download button
│ └── TimesheetPDF.jsx # PDF document structure
├── hooks/ # Custom React hooks
│ ├── useTimeSheet.js # Timesheet state management
│ └── useTheme.js # Theme management
├── utils/ # Utility functions
│ └── dateUtils.js # Date manipulation helpers
└── App.jsx # Main application component
```