Build a full-stack web application using Next.js App Router (app directory), Drizzle ORM with PostgreSQL, and Tailwind CSS. The application should be a career planning platform named 'Career Compass'.
**Core Features:**
1. **User Authentication:** Implement secure user signup, login, and logout using Clerk or NextAuth.js.
2. **User Profile Management:** Allow users to create and edit profiles including fields like current income, education level, assets (e.g., rental properties), skills, and long-term career goals.
3. **Financial Analysis Module:**
* Users can input income sources (salary, rent, etc.) and expenses.
* Calculate net income and savings rate.
* Simulate mortgage impact based on user input (loan amount, interest rate, rental income).
* Basic investment potential calculator based on savings.
4. **Career Path Simulation:**
* Users can explore different hypothetical career paths (e.g., 'pursue degree', 'focus on current job', 'upskill in current field', 'change career').
* For each path, simulate potential future income, estimated time to achieve goals, and potential risks (e.g., job market changes, layoff risks).
* Visualize these simulations using charts.
5. **Resource Library:**
* A section with curated articles and guides on career development, financial literacy, and investment.
* Search and filtering functionality for resources.
6. **Recommendation Engine (Basic MVP):**
* Based on user profile data and simulation results, provide tailored recommendations for education, skill development, or financial planning.
**Technical Stack & Requirements:**
* **Framework:** Next.js 13+ with the App Router (`app/` directory).
* **Database:** PostgreSQL with Drizzle ORM for type-safe database interactions. Set up migrations.
* **Styling:** Tailwind CSS for utility-first styling.
* **State Management:** React Context API or Zustand for client-side state management.
* **API Routes:** Create robust API routes (`app/api/`) for all backend logic, including CRUD operations for user data, financial data, and simulation results.
* **Database Schema (Drizzle):**
* `users` table (id, clerkId, name, email, ...)
* `profiles` table (userId, currentIncome, educationLevel, assets, goals, ...)
* `financialEntries` table (userId, type [income/expense], category, amount, date, ...)
* `careerPaths` table (id, name, description, ...)
* `pathSimulations` table (userId, careerPathId, simulatedIncome, timeToGoal, risks, ...)
* `resources` table (id, title, url, category, content, ...)
* **CRUD Operations:** Implement complete Create, Read, Update, and Delete functionality for all relevant data models via API routes.
* **Deployment:** Ensure the application structure is ready for deployment on platforms like Vercel.
* **Error Handling:** Implement proper error handling on both client and server sides.
* **UI/UX:** Focus on a clean, intuitive, and responsive user interface. The application should not be a Single Page Application (SPA) but a multi-page application leveraging Next.js App Router features.