Here is the folder structure of this app.
finance-dashboard/
|- app/
|-- (auth)/
|-- (dashboard)/
|-- api/
|-- apple-icon.png
|-- favicon.ico
|-- globals.css
|-- icon1.png
|-- icon2.png
|-- layout.tsx
|- components/
|-- ui/
|- config/
|-- index.ts
|- db/
|-- drizzle.ts
|-- schema.ts
|- drizzle/
|- features/
|-- accounts/
|-- categories/
|-- summary/
|-- transactions/
|- hooks/
|-- use-confirm.tsx
|- lib/
|-- hono.ts
|-- utils.ts
|- providers/
|-- query-provider.tsx
|-- sheet-provider.tsx
|- public/
|-- data.csv
|-- github.svg
|-- logo.svg
|- scripts/
|-- seed.ts
|- .env.example
|- .env.local
|- .eslintrc.json
|- .gitignore
|- .prettierrc
|- bun.lockb
|- components.json
|- drizzle.config.ts
|- environment.d.ts
|- middleware.ts
|- next.config.mjs
|- package-lock.json
|- package.json
|- postcss.config.js
|- tailwind.config.ts
|- tsconfig.json- Make sure Git and NodeJS is installed.
- Clone this repository to your local computer.
- Create
.env.localfile in root directory. - Contents of
.env.local:
# .env.local
# disabled next.js telemetry
NEXT_TELEMETRY_DISABLED=1
# clerk auth keys
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=pk_test_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
CLERK_PUBLISHABLE_KEY=pk_test_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
CLERK_SECRET_KEY=sk_test_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
# clerk redirect url
NEXT_PUBLIC_CLERK_SIGN_IN_URL=/sign-in
NEXT_PUBLIC_CLERK_SIGN_UP_URL=/sign-up
# neon db url
DATABASE_URL=postgresql://<username>:<password>@<hostname>/<database>?sslmode=require
# app base url
NEXT_PUBLIC_APP_URL=http://localhost:3000
-
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_KEYandCLERK_SECRET_KEYprovided 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
<username>,<password>,<hostname>, and<database>placeholders in the URI with your actual database credentials. - Ensure to include
?sslmode=requireat the end of the URI for SSL mode requirement.
-
Specify Public App URL
- Procedure:
- Replace
http://localhost:3000with the URL of your deployed application.
- Replace
- Procedure:
-
Save and Secure:
- Save the changes to the
.env.localfile.
- Save the changes to the
-
Install Project Dependencies using
npm install --legacy-peer-depsoryarn install --legacy-peer-depsorbun 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:seedThis 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 devoryarn dev.
NOTE: Please make sure to keep your API keys and configuration values secure and do not expose them publicly.



