You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
All authenticated endpoints require a valid access_token HttpOnly cookie obtained at login.
Auth — /auth
Method
Path
Auth
Description
POST
/auth/register
No
Create account
POST
/auth/login
No
Login → sets JWT cookies
POST
/auth/refresh
No
Rotate access token
POST
/auth/logout
Yes
Revoke tokens
POST
/auth/forgot-password
No
Send OTP to email
POST
/auth/verify-reset-otp
No
Validate OTP
POST
/auth/reset-password
No
Set new password
POST
/auth/resend-reset-otp
No
Resend OTP
Email — /email
Method
Path
Auth
Description
POST
/email/verify
No
Verify email with OTP
POST
/email/resend
No
Resend verification OTP
Projects — /projects
Method
Path
Auth
Description
GET
/projects
Yes
List user's projects
POST
/projects
Yes
Create project
GET
/projects/{id}
Yes
Get project by ID
PUT
/projects/{id}
Yes
Update project
DELETE
/projects/{id}
Yes
Delete project
POST
/projects/{id}/members
Yes
Add member
DELETE
/projects/{id}/members/{profileId}
Yes
Remove member
GET
/projects/{id}/tasks
Yes
List tasks for a project
Tasks — /tasks
Method
Path
Auth
Description
GET
/tasks
Yes
List user's tasks
POST
/tasks
Yes
Create task
PUT
/tasks/{id}
Yes
Update task
DELETE
/tasks/{id}
Yes
Delete task
Notes — /notes
Method
Path
Auth
Description
GET
/notes
Yes
List user's notes
POST
/notes
Yes
Create note
PUT
/notes/{id}
Yes
Update note
DELETE
/notes/{id}
Yes
Delete note
Commands — /commands
Method
Path
Auth
Description
GET
/commands
Yes
List user's CLI commands
POST
/commands
Yes
Create command
PUT
/commands/{id}
Yes
Update command
DELETE
/commands/{id}
Yes
Delete command
Users — /users
Method
Path
Auth
Description
GET
/users/me
Yes
Get current user profile
PUT
/users/me
Yes
Update profile
DELETE
/users/me
Yes
Delete account
GET
/users/search
Yes
Search users by username
Health — /health
Method
Path
Auth
Description
GET
/health
No
Liveness check
Getting Started
Prerequisites
Java 21
Maven 3.9+ (or use the included ./mvnw wrapper)
PostgreSQL running locally
Redis running locally
Environment Variables
Copy and fill in the following variables (e.g. in .env or shell):
# DatabasePOSTGRES_USER=devhubPOSTGRES_PASSWORD=secretPOSTGRES_DB=devhubPOSTGRES_PORT=5432# optional, defaults to 5432# JWT (dev profile reads from .pem files; production reads from env vars)JWT_PUBLIC_KEY=<contents of publicKey.pem>JWT_PRIVATE_KEY=<contents of privateKey.pem># RedisREDIS_HOST=redis://localhost:6379REDIS_PASSWORD=# Email (Gmail SMTP)MAIL_USERNAME=you@gmail.comMAIL_PASSWORD=<Gmail App Password># CORSFRONTEND_ORIGIN=http://localhost:5173
Dev profile: place publicKey.pem and privateKey.pem in src/main/resources/ — they are read automatically in dev mode.
Run in development mode
./mvnw quarkus:dev
The API will be available at http://localhost:8080.
Quarkus Dev UI: http://localhost:8080/q/dev.