Commit Graph
9 Commits
Author SHA1 Message Date
Marko (Hermes Implementer) 2e71eb73b8 Merge branch 'main' into fix/user-auth-error-handling
Resolved conflicts in:
  - api/accounts/urls.py: Took main's complete URL set (verify/refresh/logout/me)
  - web/src/App.tsx: Took main's route structure with PublicRoute/ProtectedRoute wrappers
  - web/src/services/authApi.ts: Combined main's robust interceptor with PR's extractErrorMessage + getAccessToken/getRefreshToken helpers
  - web/src/contexts/AuthContext.tsx: Combined main's full auth flow (refreshAccessToken, getProfile, logoutUser) with PR's extractErrorMessage and user_data persistence
2026-05-29 02:24:51 +00:00
Marko (Hermes Implementer) 84c6262b3d fix: proper Axios error extraction, token refresh, auth state restoration, ProtectedRoute 2026-05-29 00:13:31 +00:00
Marko (Hermes Implementer) c2fc7bc15f feat: implement API security measures phase 1 2026-05-27 00:24:09 +00:00
Marko (Hermes Implementer) 48db53c95d Merge branch 'main' into feature/user-auth
Resolved merge conflicts integrating PR #13 (Home Page with MUI v2):

Backend changes:
- settings.py: Combined INSTALLED_APPS (accounts + jobs + corsheaders),
  kept HEAD's REST_FRAMEWORK (AllowAny + throttling) and SIMPLE_JWT,
  added origin/main's CORS config
- urls.py: Combined admin/, api/auth/, api/ routes
- pyproject.toml: Combined all dependencies (simplejwt + cors-headers)
- uv.lock: Regenerated with updated dependencies

Frontend changes:
- package.json: Combined all deps (axios + MUI + emotion)
- App.tsx: Integrated AuthProvider with MUI AppLayout, all routes
- HomePage.tsx: Show landing view when unauthenticated, MUI dashboard
  when authenticated
- main.tsx, tsconfig.json, vite-env.d.ts: Combined both versions
- yarn.lock: Kept origin/main's version (regenerated on install)
2026-05-26 19:07:02 +00:00
Marko (Hermes Implementer) 9846f823b3 fix: migrate inline styles to CSS modules per review feedback 2026-05-26 17:04:58 +00:00
Marko (Hermes Implementer) e6e6c92c28 fix: review issues - add rate limiting for auth views, add __str__ to User model 2026-05-26 06:07:58 +00:00
Marko (Hermes Implementer) fc0531395d feat: complete user authentication with separate login and register pages 2026-05-26 04:35:27 +00:00
Marko (Hermes Implementer) 6867a91b67 feat: add user authentication with separate login and register pages
- Custom User model with email as unique identifier (AUTH_USER_MODEL)

- POST /api/auth/register/ with email validation, password min 8 chars, duplicate rejection

- POST /api/auth/login/ returning JWT (access + refresh) tokens

- Passwords hashed via Django's make_password

- React LoginPage and RegisterPage with form validation

- AuthContext with useReducer for auth state management

- Axios API client with JWT token injection

- TypeScript conversion of frontend scaffold
2026-05-26 00:54:27 +00:00
Marko (Hermes Implementer) b91b7c364e feat: set up monorepo scaffold with Yarn workspaces, Django API, React/Vite web, and Docker Compose
- Root package.json with Yarn workspaces (web, api)
- /web: React 19 + Vite 6 + @vitejs/plugin-react
  - index.html, src/main.jsx, src/App.jsx, vite.config.js
- /api: Django 5.x managed with uv
  - pyproject.toml with Django + psycopg2-binary
  - project/settings.py with PostgreSQL config from DATABASE_URL
  - project/urls.py, project/wsgi.py, manage.py
- docker-compose.yml with db (postgres:15), api, web services
  - Health check for db, live code volumes, dependency ordering
- Dockerfiles for both web (node:20-alpine) and api (python:3.12-slim)
- .gitignore updated for Python build artifacts and venv
- docs/implementation-issue-1-monorepo-scaffold.md
2026-05-24 07:38:14 +00:00