You are an expert full-stack developer. Your task is to develop a fully functional MVP (Minimum Viable Product) for a web application named 'Legacy Compass' using Next.js 14 with the App Router, Drizzle ORM for database interactions, and a PostgreSQL database. The application should allow users to compare different investment scenarios for inherited money, focusing on CDs versus low-fee index ETFs.Core Functionalities (CRUD-focused):1. User Authentication: Implement basic email/password authentication (e.g., using Clerk, NextAuth, or a simple custom solution for MVP). Users must be logged in to create and manage investment plans.2. Investment Plan Management (CRUD):* Create: A logged-in user can create a new 'Investment Plan'. Each plan should include:`planName` (string): e.g., "My Wife's Inheritance Plan"`inheritanceAmount` (number): Initial capital, e.g., 950000`currentAge` (number): User's current age, e.g., 42`targetAge` (number): Age until which to simulate, e.g., 62 (20 years)`annualContribution` (number, optional): Additional money added per year, e.g., 0`inflationRate` (number): Expected annual inflation rate, e.g., 3.0 (as percentage)`cdInterestRate` (number): Example CD annual interest rate, e.g., 4.5 (as percentage)`etfAnnualReturn` (number): Example ETF annual return rate, e.g., 7.0 (as percentage)* Read:* Dashboard: A user's dashboard displaying a list of their saved investment plans.* Plan Detail Page: A dedicated page for each investment plan showing all input parameters and the generated comparison results (graphs and summary).* Update: Users can edit existing investment plan parameters on the plan detail page.* Delete: Users can delete an investment plan from their dashboard or the plan detail page.3. Investment Scenario Calculation & Visualization:* On the plan detail page, dynamically calculate and display two main scenarios over the `targetAge - currentAge` duration:* Scenario A: Certificate of Deposit (CD) Growth: Calculate compound interest growth based on `inheritanceAmount`, `cdInterestRate`, and `annualContribution`.* Scenario B: ETF Growth: Calculate compound growth based on `inheritanceAmount`, `etfAnnualReturn`, and `annualContribution`.* Inflation-Adjusted Value: For both scenarios, also calculate and display the future value adjusted for `inflationRate`.* Visual Representation: Use a charting library (e.g., Recharts, Chart.js) to display:* Line graph comparing nominal growth of CD vs. ETF over time.* Line graph comparing inflation-adjusted growth of CD vs. ETF over time.* Summary statistics: Total nominal gain, total inflation-adjusted gain for both scenarios at `targetAge`.4. Educational Content Integration (Static):* A dedicated "Learn" page (`/learn`) with static content explaining basic financial concepts: "What are CDs?", "What are ETFs?", "The Power of Compounding", "Understanding Inflation".Technical Requirements:* Next.js 14 App Router: All pages and API routes should be within the `app/` directory.* Database: PostgreSQL.* ORM: Drizzle ORM for all database interactions.* Styling: Tailwind CSS for a modern and responsive UI.* Multi-page Structure:* `/`: Homepage (brief intro, call to action to sign up/login)* `/dashboard`: User's main dashboard after login, listing plans.* `/plan/new`: Page to create a new investment plan.* `/plan/[id]`: Dynamic page to view/edit/delete a specific investment plan and its simulation results.* `/learn`: Static educational content page.* `/signup`, `/login` (or handled by auth provider).* API Routes:* `api/plans` (GET, POST): For fetching all plans for a user and creating a new plan.* `api/plans/[id]` (GET, PUT, DELETE): For fetching, updating, and deleting a specific plan.* Database Schema (Drizzle ORM):* `users` table: `id`, `email`, `hashedPassword` (or similar for auth provider).* `investment_plans` table: `id`, `userId` (foreign key to users), `planName`, `inheritanceAmount`, `currentAge`, `targetAge`, `annualContribution`, `inflationRate`, `cdInterestRate`, `etfAnnualReturn`, `createdAt`, `updatedAt`.* User Interface: Intuitive forms for input, clear display of results, responsive design.Instructions for the AI:Provide the complete code for this MVP. This includes:Project setup instructions.`drizzle.config.ts` and schema definition (`db/schema.ts`).Database migration scripts (if Drizzle Kit is used).API routes (GET, POST, PUT, DELETE) for investment plans.React components for:Authentication (login/signup forms, if custom).Dashboard (list of plans).New Plan form.Plan Detail page (displaying inputs, charts, edit/delete buttons).Navigation.Learn page.Helper functions for financial calculations (compound interest, inflation adjustment).Tailwind CSS configuration and basic styling for all pages/components.Ensure all CRUD operations are fully functional end-to-end (from UI to database).Use server actions or API routes consistently for data mutations.Do not just provide a landing page. This must be a full-stack, multi-page application with a working database and CRUD.