From 550044933473c856953c690db4f0756e86e78554 Mon Sep 17 00:00:00 2001 From: Hayden Hargreaves Date: Tue, 31 Mar 2026 12:40:57 -0700 Subject: [PATCH] feat: docker and nginx Working on deployments --- Dockerfile | 22 ++++++ HaydenHargreaves_Oct01.pdf | Bin 154196 -> 0 bytes docker-compose.yml | 14 ++++ internal/api/middleware.go | 121 ++++++++++++++++++++++++++-- internal/api/routes.go | 7 ++ web/Dockerfile | 23 ++++++ web/nginx.conf | 36 +++++++++ web/src/assets/css/modal.css | 148 +++++++++++++++++++++++++++++++++++ web/src/components/Modal.tsx | 87 ++++++++++++++++++++ web/src/config/api.ts | 15 ++++ web/src/pages/upload.tsx | 77 ++++++++++++++++-- 11 files changed, 538 insertions(+), 12 deletions(-) create mode 100644 Dockerfile delete mode 100644 HaydenHargreaves_Oct01.pdf create mode 100644 docker-compose.yml create mode 100644 web/Dockerfile create mode 100644 web/nginx.conf create mode 100644 web/src/assets/css/modal.css create mode 100644 web/src/components/Modal.tsx create mode 100644 web/src/config/api.ts diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..9dfaa25 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,22 @@ +# Build stage +FROM golang:1.25.5-alpine AS builder + +RUN apk add --no-cache git ca-certificates +WORKDIR /build + +COPY go.mod go.sum ./ +RUN go mod download +COPY . . + +RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o server ./cmd/server + +# Runtime stage +FROM alpine:latest + +RUN apk --no-cache add ca-certificates +WORKDIR /app +COPY --from=builder /build/server . + +EXPOSE 3000 + +CMD ["./server"] diff --git a/HaydenHargreaves_Oct01.pdf b/HaydenHargreaves_Oct01.pdf deleted file mode 100644 index 8a51962fded6ac1e5a6de1e07bbceada9a0ba2d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 154196 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 z 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 10 { + // Trace: SRD_UseCase_0005, SRD_UseCase_0006 - Rate limit error handling + // Trace: SRD_QualAssurReq_0006 - Return error when rate limit reached + w.Header().Set("Content-Type", "application/json") + w.WriteHeader(http.StatusTooManyRequests) + w.Write([]byte(`{"error": "Rate limit exceeded. You can make up to 10 requests per hour. Please try again later."}`)) + return + } + + // Add current request to history + recentRequests = append(recentRequests, now) + rateLimiter.timestamps[ip] = recentRequests + + // Allow request to proceed + next.ServeHTTP(w, r) + }) +} + +// getClientIP extracts the real client IP address from the request +// Trace: SRD_SecReq_0006 - Use device sending IP to impose rate limit +func getClientIP(r *http.Request) string { + // Check X-Forwarded-For header (for requests behind proxies/load balancers) + xff := r.Header.Get("X-Forwarded-For") + if xff != "" { + // X-Forwarded-For can contain multiple IPs, take the first one + ips := strings.Split(xff, ",") + if len(ips) > 0 { + return strings.TrimSpace(ips[0]) + } + } + + // Check X-Real-IP header (alternative proxy header) + xri := r.Header.Get("X-Real-IP") + if xri != "" { + return xri + } + + // Fall back to RemoteAddr (direct connection) + ip, _, err := net.SplitHostPort(r.RemoteAddr) + if err != nil { + return r.RemoteAddr + } + return ip +} diff --git a/internal/api/routes.go b/internal/api/routes.go index 898f90d..d54ea1c 100644 --- a/internal/api/routes.go +++ b/internal/api/routes.go @@ -8,10 +8,17 @@ import ( // Mount registers all API routes onto the provided router. // Trace: SDD_LLD_0005 - Provide HTTP handler and endpoint for form data uploads +// Trace: SDD_LLD_0011 - Enforce per-IP rate limit (10/hr) at middleware level func Mount(r chi.Router) { r.Use(CORS) r.Route("/api", func(r chi.Router) { + // Apply rate limiting to all API endpoints + // Trace: SRD_FuncReq_0014 - Prevent more than 10 resume gradings per hour + // Trace: SRD_SecReq_0004 - Implement rate limit of 10 requests per hour + // Trace: SDD_LLD_0011 - Rate limiting implemented at middleware level + r.Use(RateLimit) + // Trace: SDD_LLD_0005 - HTTP endpoint that accepts multipart/form data uploads r.Post("/analyze", handlers.Analyze) }) diff --git a/web/Dockerfile b/web/Dockerfile new file mode 100644 index 0000000..42e33f2 --- /dev/null +++ b/web/Dockerfile @@ -0,0 +1,23 @@ +# Build stage +FROM node:20-alpine AS builder + +WORKDIR /app + +# Copy and install files +COPY package*.json ./ +RUN npm ci +COPY . . + +# Build the application +RUN npm run build + +# Production stage +FROM nginx:alpine + +# Copy built files from builder and project +COPY --from=builder /app/dist /usr/share/nginx/html +COPY nginx.conf /etc/nginx/conf.d/default.conf + +EXPOSE 80 + +CMD ["nginx", "-g", "daemon off;"] diff --git a/web/nginx.conf b/web/nginx.conf new file mode 100644 index 0000000..73b10d6 --- /dev/null +++ b/web/nginx.conf @@ -0,0 +1,36 @@ +server { + listen 80; + server_name localhost; + root /usr/share/nginx/html; + index index.html; + + # Enable gzip compression + gzip on; + gzip_vary on; + gzip_min_length 1024; + gzip_types text/plain text/css text/xml text/javascript application/x-javascript application/xml+rss application/json application/javascript; + + # Serve static files + location / { + try_files $uri $uri/ /index.html; + } + + # Cache static assets + location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|woff|woff2|ttf|eot)$ { + expires 1y; + add_header Cache-Control "public, immutable"; + } + + # Proxy API requests to backend + location /api/ { + proxy_pass http://backend:3000; + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection 'upgrade'; + proxy_set_header Host $host; + proxy_cache_bypass $http_upgrade; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + } +} diff --git a/web/src/assets/css/modal.css b/web/src/assets/css/modal.css new file mode 100644 index 0000000..28f84bd --- /dev/null +++ b/web/src/assets/css/modal.css @@ -0,0 +1,148 @@ +/* Modal Styles - Trace: SDD_LLD_0030, SRD_InterfaceReq_0015 */ + +/* Backdrop - darkens background when modal is open */ +.modal-backdrop { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: rgba(0, 0, 0, 0.5); + z-index: 1000; + animation: fadeIn 0.2s ease; +} + +@keyframes fadeIn { + from { + opacity: 0; + } + to { + opacity: 1; + } +} + +/* Modal Container */ +.modal-container { + position: fixed; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + background: white; + border-radius: 16px; + box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3); + z-index: 1001; + max-width: 500px; + width: 90%; + animation: slideUp 0.3s ease; +} + +@keyframes slideUp { + from { + opacity: 0; + transform: translate(-50%, -40%); + } + to { + opacity: 1; + transform: translate(-50%, -50%); + } +} + +/* Modal Header */ +.modal-header { + padding: 32px 32px 24px 32px; + display: flex; + flex-direction: column; + align-items: center; + gap: 16px; + border-bottom: 1px solid #e2e8f0; +} + +.modal-icon { + font-size: 3rem; + line-height: 1; +} + +.modal-title { + font-size: 1.5rem; + font-weight: 700; + color: #1a1a1a; + margin: 0; + text-align: center; +} + +/* Modal Body */ +.modal-body { + padding: 24px 32px; +} + +.modal-message { + font-size: 1rem; + color: #4a5568; + line-height: 1.6; + margin: 0; + text-align: center; +} + +/* Modal Footer */ +.modal-footer { + padding: 16px 32px 32px 32px; + display: flex; + justify-content: center; +} + +.modal-footer .btn { + min-width: 120px; +} + +/* Modal Type Variants */ +.modal-error .modal-header { + border-bottom-color: #feb2b2; +} + +.modal-error .modal-icon { + color: #f56565; +} + +.modal-warning .modal-header { + border-bottom-color: #fbd38d; +} + +.modal-warning .modal-icon { + color: #ed8936; +} + +.modal-info .modal-header { + border-bottom-color: #90cdf4; +} + +.modal-info .modal-icon { + color: #4299e1; +} + +/* Responsive Design */ +@media (max-width: 640px) { + .modal-container { + width: 95%; + max-width: none; + } + + .modal-header { + padding: 24px 20px 16px 20px; + } + + .modal-body { + padding: 20px; + } + + .modal-footer { + padding: 12px 20px 24px 20px; + } + + .modal-title { + font-size: 1.25rem; + } + + .modal-icon { + font-size: 2.5rem; + } +} diff --git a/web/src/components/Modal.tsx b/web/src/components/Modal.tsx new file mode 100644 index 0000000..a38a0cd --- /dev/null +++ b/web/src/components/Modal.tsx @@ -0,0 +1,87 @@ +import { useEffect } from 'react'; +import '../assets/css/modal.css'; + +interface ModalProps { + isOpen: boolean; + onClose: () => void; + title: string; + message: string; + type?: 'error' | 'warning' | 'info'; +} + +/** + * Modal component for displaying messages to the user + * Trace: SDD_LLD_0030 - Display persistent error messages + * Trace: SRD_InterfaceReq_0015 - Display errors in persistent manner (not toasts or popups) + * Trace: SRD_FuncReq_0015 - Display any errors that may occur in the process + */ +export default function Modal({ isOpen, onClose, title, message, type = 'error' }: ModalProps) { + // Close modal on Escape key press + useEffect(() => { + const handleEscape = (e: KeyboardEvent) => { + if (e.key === 'Escape' && isOpen) { + onClose(); + } + }; + + document.addEventListener('keydown', handleEscape); + return () => document.removeEventListener('keydown', handleEscape); + }, [isOpen, onClose]); + + // Prevent body scroll when modal is open + useEffect(() => { + if (isOpen) { + document.body.style.overflow = 'hidden'; + } else { + document.body.style.overflow = 'unset'; + } + + return () => { + document.body.style.overflow = 'unset'; + }; + }, [isOpen]); + + if (!isOpen) return null; + + const getIcon = () => { + switch (type) { + case 'error': + return '⚠️'; + case 'warning': + return '⚠️'; + case 'info': + return 'ℹ️'; + default: + return '⚠️'; + } + }; + + return ( + <> + {/* Modal Backdrop */} +
+ + {/* Modal Content */} +
+
+
{getIcon()}
+

{title}

+
+ +
+

{message}

+
+ +
+ +
+
+ + ); +} diff --git a/web/src/config/api.ts b/web/src/config/api.ts new file mode 100644 index 0000000..f8c5f59 --- /dev/null +++ b/web/src/config/api.ts @@ -0,0 +1,15 @@ +/** + * API configuration + * Uses environment variable or defaults based on environment + */ + +// In production (Docker), use relative path so nginx can proxy +// In development, use full URL to reach the Go backend directly +const API_BASE_URL = import.meta.env.VITE_API_BASE_URL || + (import.meta.env.MODE === 'production' ? '' : 'http://localhost:3000'); + +export const API_ENDPOINTS = { + analyze: `${API_BASE_URL}/api/analyze`, +} as const; + +export default API_BASE_URL; diff --git a/web/src/pages/upload.tsx b/web/src/pages/upload.tsx index cb41c26..bfff5c3 100644 --- a/web/src/pages/upload.tsx +++ b/web/src/pages/upload.tsx @@ -1,7 +1,8 @@ import { useState, useRef } from 'react'; import { Link, useNavigate } from 'react-router-dom'; import type { ResumeAnalysisResult } from '../types/resumeAnalysis'; -import { mockAnalysisResult } from '../data/mockAnalysis'; +import Modal from '../components/Modal'; +import { API_ENDPOINTS } from '../config/api'; import '../assets/css/upload.css'; /** @@ -19,9 +20,29 @@ export default function UploadPage() { const [jobDescription, setJobDescription] = useState(''); const [isDragging, setIsDragging] = useState(false); const [isAnalyzing, setIsAnalyzing] = useState(false); + const [modalState, setModalState] = useState<{ + isOpen: boolean; + title: string; + message: string; + type: 'error' | 'warning' | 'info'; + }>({ + isOpen: false, + title: '', + message: '', + type: 'error' + }); const fileInputRef = useRef(null); const navigate = useNavigate(); + // Helper to show modal + const showModal = (title: string, message: string, type: 'error' | 'warning' | 'info' = 'error') => { + setModalState({ isOpen: true, title, message, type }); + }; + + const closeModal = () => { + setModalState(prev => ({ ...prev, isOpen: false })); + }; + // Trace: SDD_LLD_0001 - Accept only PDF uploads (validation) // Trace: SDD_HLD_0001 - Accept only PDF formatting for input resumes const handleFileSelect = (file: File) => { @@ -43,7 +64,12 @@ export default function UploadPage() { } } else { // Trace: SDD_LLD_0002 - Reject non-PDF uploads - alert('Please upload a PDF or image file'); + // Trace: SRD_InterfaceReq_0015 - Display errors in persistent manner + showModal( + 'Invalid File Type', + 'Please upload a PDF or image file. Other file formats are not supported.', + 'warning' + ); } }; @@ -86,11 +112,19 @@ export default function UploadPage() { // Trace: SDD_LLD_0027 - Show loading spinner during active API calls const handleAnalyze = async () => { if (!resumeFile) { - alert('Please upload a resume first'); + showModal( + 'Resume Required', + 'Please upload a resume before analyzing.', + 'warning' + ); return; } if (!jobDescription.trim()) { - alert('Please enter a job description'); + showModal( + 'Job Description Required', + 'Please enter a job description to compare your resume against.', + 'warning' + ); return; } @@ -104,7 +138,22 @@ export default function UploadPage() { formData.append('job_description', jobDescription); // Trace: SDD_HLD_0005 - Provide structured inputs to AI grader - const response = await fetch('http://localhost:3000/api/analyze', { method: 'POST', body: formData }); + const response = await fetch(API_ENDPOINTS.analyze, { method: 'POST', body: formData }); + + // Trace: SRD_UseCase_0006 - Display error message when rate limit reached + // Trace: SRD_QualAssurReq_0006 - Handle rate limit error appropriately + // Trace: SRD_InterfaceReq_0015 - Display errors in persistent manner + if (response.status === 429) { + const errorData = await response.json(); + showModal( + 'Rate Limit Exceeded', + errorData.error || 'You can make up to 10 requests per hour. Please try again later.', + 'warning' + ); + setIsAnalyzing(false); + return; + } + if (!response.ok) throw new Error(`Server error: ${response.status}`); // Trace: SDD_LLD_0019 - Receive JSON output from backend @@ -114,8 +163,13 @@ export default function UploadPage() { navigate('/results', { state: analysisData }); } catch (error) { // Trace: SDD_LLD_0030 - Display persistent error messages + // Trace: SRD_InterfaceReq_0015 - Display errors in persistent manner console.error('Error analyzing resume:', error); - alert('Failed to analyze resume. Please try again.'); + showModal( + 'Analysis Failed', + 'Failed to analyze resume. Please check your connection and try again.', + 'error' + ); setIsAnalyzing(false); } }; @@ -261,6 +315,17 @@ export default function UploadPage() {
)} + + {/* Error/Warning Modal */} + {/* Trace: SDD_LLD_0030 - Display persistent error messages */} + {/* Trace: SRD_InterfaceReq_0015 - Display errors in persistent manner (not toasts or popups) */} + ); }