Alexis Bruneteau
|
b83c7a7d6d
|
feat(migration): migrate from Angular 20 to Next.js 15
Build and Deploy to k3s / build-and-deploy (push) Failing after 1m31s
Complete framework migration from Angular to Next.js with full feature parity.
## What Changed
- Migrated from Angular 20 to Next.js 15 with App Router
- Replaced Angular components with React functional components
- Implemented React Context API for state management (replacing RxJS)
- Integrated React Hook Form for form handling
- Added shadcn/ui component library
- Configured Tailwind CSS 4.1 with @tailwindcss/postcss
- Implemented JWT authentication with middleware protection
## Core Features Implemented
- ✅ User registration and login with validation
- ✅ JWT token authentication with localStorage
- ✅ Protected dashboard route with middleware
- ✅ Portfolio listing with status indicators
- ✅ Create portfolio functionality
- ✅ ZIP file upload with progress tracking
- ✅ Portfolio deployment
- ✅ Responsive design with Tailwind CSS
## Technical Stack
- Framework: Next.js 15 (App Router)
- Language: TypeScript 5.8
- Styling: Tailwind CSS 4.1
- UI Components: shadcn/ui + Lucide icons
- State: React Context API + hooks
- Forms: React Hook Form
- API Client: Native fetch with custom wrapper
## File Structure
- /app - Next.js pages (landing, login, register, dashboard)
- /components - React components (ui primitives, auth provider)
- /lib - API client, types, utilities
- /hooks - Custom hooks (useAuth, usePortfolios)
- /middleware.ts - Route protection
- /angular-backup - Preserved Angular source code
## API Compatibility
- All backend endpoints remain unchanged
- JWT Bearer token authentication preserved
- API response format maintained
## Build Output
- Production build: 7 routes compiled successfully
- Bundle size: ~102kB shared JS (optimized)
- First Load JS: 103-126kB per route
## Documentation
- Updated README.md with Next.js setup guide
- Created OpenSpec proposal in openspec/changes/migrate-to-nextjs-launchui/
- Added project context in openspec/project.md
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
PROD-v1.0.0
v1.0.0-nextjs
|
2025-10-17 00:34:43 +02:00 |
|
Alexis Bruneteau
|
609940cafe
|
env
Build and Deploy to k3s / build-and-deploy (push) Failing after 38s
PROD-v0.0.11
|
2025-06-05 03:30:17 +02:00 |
|
Alexis Bruneteau
|
49e1bcac81
|
working good
Build and Deploy to k3s / build-and-deploy (push) Failing after 38s
PROD-v0.0.10
|
2025-06-04 21:52:54 +02:00 |
|
Alexis Bruneteau
|
1fdf7516a5
|
tag
|
2025-06-04 03:32:57 +02:00 |
|
Alexis Bruneteau
|
d5c4a99281
|
set production API
Build and Deploy to k3s / build-and-deploy (push) Failing after 47s
PROD-v0.0.8
|
2025-06-02 14:32:07 +02:00 |
|
Alexis Bruneteau
|
e785ea0ea6
|
fixed ingress
Build and Deploy to k3s / build-and-deploy (push) Failing after 38s
PROD-v0.0.6
|
2025-06-02 12:17:44 +02:00 |
|
Alexis Bruneteau
|
cd89d07f70
|
changed docker image tag
Build and Deploy to k3s / build-and-deploy (push) Failing after 40s
PROD-v0.0.3
|
2025-06-02 10:13:46 +02:00 |
|
Alexis Bruneteau
|
3ade4d1bd1
|
changed icon
Build and Deploy to k3s / build-and-deploy (push) Failing after 38s
PROD-v0.0.2
|
2025-06-02 10:04:42 +02:00 |
|
Alexis Bruneteau
|
120fc26d01
|
DNS
Build and Deploy to k3s / build-and-deploy (push) Failing after 38s
PROD-v0.0.1
|
2025-06-01 15:34:02 +02:00 |
|
Alexis Bruneteau
|
a55a295164
|
pre-alpha test
Build and Deploy to k3s / build-and-deploy (push) Failing after 39s
PRE_ALPHA-v0.0.6
|
2025-06-01 14:04:20 +02:00 |
|
Alexis Bruneteau
|
e616a400ed
|
optimized Dockerfile
Build and Deploy to k3s / build-and-deploy (push) Failing after 38s
PRE_ALPHA-v0.0.5
|
2025-06-01 03:14:46 +02:00 |
|
Alexis Bruneteau
|
8acf22a953
|
optimized Dockerfile
Build and Deploy to k3s / build-and-deploy (push) Failing after 40s
PRE_ALPHA-v0.0.4
|
2025-06-01 03:07:08 +02:00 |
|
Alexis Bruneteau
|
295c15f03b
|
landing
Build and Deploy to k3s / build-and-deploy (push) Failing after 1m7s
PRE_ALPHA-v0.0.3
|
2025-06-01 03:03:04 +02:00 |
|
Alexis Bruneteau
|
ee5daffdba
|
landing
Build and Deploy to k3s / build-and-deploy (push) Failing after 36s
PRE_ALPHA-v0.0.2
|
2025-06-01 03:01:58 +02:00 |
|
Alexis Bruneteau
|
3849e2d0dc
|
tag
Build and Deploy to k3s / build-and-deploy (push) Failing after 1m10s
PRE_ALPHA-v0.0.1
|
2025-05-31 18:14:35 +02:00 |
|
Alexis Bruneteau
|
46e5797d85
|
tag
Build and Deploy to k3s / build-and-deploy (push) Failing after 1m19s
PRE_ALPHA-v0
|
2025-05-31 18:13:16 +02:00 |
|
Alexis Bruneteau
|
43ddc32e17
|
tag
Build and Deploy to k3s / build-and-deploy (push) Failing after 1m25s
PRE-ALPHA-v0
|
2025-05-31 18:12:23 +02:00 |
|
Alexis Bruneteau
|
40793eceab
|
tag
|
2025-05-31 18:10:58 +02:00 |
|
Alexis Bruneteau
|
4d2b176816
|
tag
|
2025-05-31 18:00:35 +02:00 |
|
Alexis Bruneteau
|
85ab22d566
|
dingz
|
2025-05-31 17:58:30 +02:00 |
|
Alexis Bruneteau
|
97520d404a
|
retesting
|
2025-05-31 17:47:59 +02:00 |
|
Alexis Bruneteau
|
225c0654cc
|
retesting
|
2025-05-31 17:44:22 +02:00 |
|
Alexis Bruneteau
|
00f4158d57
|
retesting
|
2025-05-31 17:41:54 +02:00 |
|
Alexis Bruneteau
|
f2c2b55cb1
|
testing
|
2025-05-31 17:36:34 +02:00 |
|
Alexis Bruneteau
|
24c382d520
|
debugging
|
2025-05-31 17:23:30 +02:00 |
|
Alexis Bruneteau
|
128d87636a
|
tag
|
2025-05-31 17:17:16 +02:00 |
|
Alexis Bruneteau
|
54083e4233
|
tag
|
2025-05-31 17:15:36 +02:00 |
|
Alexis Bruneteau
|
fe14d9f790
|
tag
|
2025-05-31 16:51:52 +02:00 |
|
Alexis Bruneteau
|
6f76ba2f6e
|
tag
|
2025-05-31 16:09:37 +02:00 |
|
Alexis Bruneteau
|
0643d4fb08
|
tag
|
2025-05-31 16:08:09 +02:00 |
|
Alexis Bruneteau
|
7e0cd37851
|
tag
|
2025-05-31 15:54:58 +02:00 |
|
Alexis Bruneteau
|
e378e7fa11
|
tag
|
2025-05-31 15:33:13 +02:00 |
|
Alexis Bruneteau
|
1a862b1efc
|
fix
|
2025-05-31 03:38:25 +02:00 |
|
Alexis Bruneteau
|
9d25fbc935
|
fix
|
2025-05-31 03:28:06 +02:00 |
|
Alexis Bruneteau
|
c03360713f
|
fix
|
2025-05-31 03:11:55 +02:00 |
|
Alexis Bruneteau
|
ae2b3b106a
|
waouh
|
2025-05-31 02:43:51 +02:00 |
|
Alexis Bruneteau
|
70f799ea73
|
first commit
|
2025-05-31 01:02:43 +02:00 |
|
Alexis Bruneteau
|
4762cc8a05
|
initial commit
|
2025-05-30 13:25:49 +02:00 |
|