# LUSA Back Planner
A project timeline generator for production teams. Set a deadline, pick a production lane, and get your timeline instantly. Supports PDF brief parsing, change requests, and PDF export.
## Tech Stack
- Vite + React + TypeScript
- Tailwind CSS + shadcn/ui
- pdfjs-dist (client-side PDF parsing)
- jsPDF + html2canvas (PDF export)
## Local Development
Requires Node.js 18+.
```bash
npm install
npm run dev
```
The dev server runs at `http://localhost:5173`.
To preview a production build locally:
```bash
npm run build
npm run preview
```
## Deploy to Ubuntu Server (Apache)
### 1. Build
```bash
npm install
npm run build
```
This creates a `dist/` folder with the static site.
### 2. Copy to server
```bash
scp -r dist/ user@your-server:/var/www/backplanner
```
### 3. Create Apache virtual host
Create `/etc/apache2/sites-available/backplanner.conf`:
```apache
ServerName your-domain.com
DocumentRoot /var/www/backplanner
Options -Indexes
AllowOverride None
Require all granted
# SPA fallback - route all requests to index.html
FallbackResource /index.html
# Cache static assets (JS, CSS, images)
Header set Cache-Control "public, max-age=31536000, immutable"
```
### 4. Enable and start
```bash
sudo a2enmod headers
sudo a2ensite backplanner.conf
sudo systemctl reload apache2
```
### 5. (Optional) Enable HTTPS with Let's Encrypt
```bash
sudo apt install certbot python3-certbot-apache
sudo certbot --apache -d your-domain.com
```
## Subdirectory Deploy
If hosting under a subdirectory (e.g. `your-server.com/backplanner/`), set the `base` option in `vite.config.ts` before building:
```ts
export default defineConfig({
base: "/backplanner/",
// ...
});
```
Then use an `Alias` in Apache instead of a separate virtual host:
```apache
Alias /backplanner /var/www/backplanner
Options -Indexes
AllowOverride None
Require all granted
FallbackResource /backplanner/index.html
```