- Frontend: Next.js, React, TailwindCSS
- Backend: Hono, Drizzle ORM
- Database: PostgreSQL (Neon)
- Auth: Clerk
- State/Data: React Query, Zustand
- Charts: Recharts
git clone <your-repo-url>
cd finance-dashboardnpm install
⚠️ If you face dependency issues:
npm install --legacy-peer-depsnpm install date-fns@3Make sure Git and NodeJS is installed. Clone this repository to your local computer. Create .env.local file in root directory. Contents of .env.local: Obtain Clerk Authentication Keys
Source: Clerk Dashboard or Settings Page Procedure: Log in to your Clerk account. Navigate to the dashboard or settings page. Look for the section related to authentication keys. Copy the NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY and CLERK_SECRET_KEY provided in that section. Retrieve Neon Database URI
Source: Database Provider (e.g., Neon, PostgreSQL) Procedure: Access your database provider's platform or configuration. Locate the database connection details. Replace , , , and placeholders in the URI with your actual database credentials. Ensure to include ?sslmode=require at the end of the URI for SSL mode requirement. Specify Public App URL
Procedure: Replace http://localhost:3000 with the URL of your deployed application. Save and Secure:
Save the changes to the .env.local file. Install Project Dependencies using npm install --legacy-peer-deps or yarn install --legacy-peer-deps.
Migrate database:
In terminal, run npm run db:generate to generate database client and npm run db:migrate to make sure that your database is up-to-date along with schema.
Run the Seed Script: In the same terminal, run the following command to execute the seed script:
npm run db:seed This command uses npm to execute the Typescript file (scripts/seed.ts) and writes transaction data in database.
Verify Data in Database: Once the script completes, check your database to ensure that the transaction data has been successfully seeded.
Now app is fully configured 👍 and you can start using this app using either one of npm run dev or yarn dev. NOTE: Please make sure to keep your API keys and configuration values secure and do not expose them publicly.
Create .env.local:
NEXT_TELEMETRY_DISABLED=1
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=your_key
CLERK_SECRET_KEY=your_secret
NEXT_PUBLIC_CLERK_SIGN_IN_URL=/sign-in
NEXT_PUBLIC_CLERK_SIGN_UP_URL=/sign-up
DATABASE_URL=your_database_url
NEXT_PUBLIC_APP_URL=http://localhost:3000
npm run db:generate
npm run db:migrate
npm run db:seednpm run devRemove-Item -Recurse -Force node_modules
Remove-Item -Force package-lock.json
npm install- ✅ Do NOT delete
package-lock.jsonpermanently - ❌ Do NOT run
npm uninstall package-lock.json ⚠️ Ensuredate-fnsversion is compatible (v3)
👉 Add in package.json:
"scripts": {
"dev": "next dev"
}👉 Fix:
npm install date-fns@3- Dashboard analytics
- Income & expense tracking
- Charts & reports
- Category management
- Authentication
Deploy easily on Vercel
Pull requests are welcome!
Give this project a star if it helped you!
