Welcome to the Sumera app! This project is designed to help you manage your finances effectively by tracking your expenses, setting budgets, and analyzing your spending habits. Built using modern technologies like Next.js App Router, Tailwind CSS, Framer Motion, and Drizzle ORM, this app provides an intuitive and smooth user experience.
You can check out the live demo of the project here.
@clerk/nextjs
.Make sure you have the following installed before starting:
Follow these steps to get the project up and running locally:
git clone https://github.com/alok-x0s1/Sumera.git
cd Sumera
# Using Yarn
yarn install
# Or using npm
npm install
Create a .env.local
file in the root directory and add the following environment variables:
# Clerk.js Configuration
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=<your-clerk-publishable-key>
# Clerk.js Secret Key
CLERK_SECRET_KEY=<your-clerk-secret-key>
# Clerk.js Sign-in and Sign-up URLs
NEXT_PUBLIC_CLERK_SIGN_IN_URL=/sign-in
NEXT_PUBLIC_CLERK_SIGN_UP_URL=/sign-up
# Database URL
NEXT_PUBLIC_DATABASE_URL=<your-postgres-database-url>
Start the app in development mode:
# Using Yarn
yarn dev
# Or using npm
npm run dev
The app should now be running on http://localhost:3000.
This is a personal finance app that helps you track your expenses, set budgets, and analyze your spending habits.
The home page is the first page that the user sees when they visit the app. It is the landing page. It has a hero section with a sign-in button.
The sign-up page is the page that the user sees when they click the sign-in button on the home page. It is the page that allows the user to sign up for the app.
The dashboard is the page that the user sees when they sign in to the app. It is the page that allows the user to manage their expenses and budgets.
Something like this:
.
āāā README.md
āāā .env.local
āāā public
ā āāā finance-dashboard.png # Static image files
āāā src
ā āāā app
ā ā āāā layout.tsx # Application layout file
ā ā āāā page.tsx # Main page
ā ā āāā dashboard # Dashboard-related pages
ā ā ā āāā page.tsx # Dashboard page
ā ā āāā sign-in # Sign-in related pages
ā āāā components
ā ā āāā Hero.tsx # Hero section component
ā ā āāā Navbar.tsx # Navigation bar
ā ā āāā Footer.tsx # Footer component
ā āāā hooks # Custom hooks
ā āāā lib
ā ā āāā drizzle.ts # Drizzle ORM configuration
ā āāā pages # Next.js traditional pages
ā āāā styles # Global styles and configurations
ā ā āāā globals.css
āāā tailwind.config.js # Tailwind CSS configuration
āāā tsconfig.json # TypeScript configuration
āāā next.config.js # Next.js configuration
Here are some commonly used scripts to help manage the project:
npm run dev
: Start the development server.npm run build
: Create an optimized production build.npm run start
: Start the production server.The folder structure follows Next.js conventions, separating components, hooks, styles, and API routes for a clean and maintainable architecture.
Make sure to set up the environment variables in a .env.local
file as mentioned in the Getting Started section.
Contributions are welcome! Please follow these guidelines:
feat/your-feature
).