Skip to content

tylerbert31/Nxt-Expense

Repository files navigation

Multi-Tenant NextJS Expense Tracker with Clerk Auth

Expense Tracker Icon Soon

Welcome to the Multi-Tenant NextJS Expense Tracker! This application allows multiple users to manage their expenses seamlessly using Next.js for the frontend and backend and Clerk for authentication.

Features

  • Multi-Tenant Architecture: Separate data for different users.
  • User Authentication: Secure authentication using Clerk.
  • Expense Management: Track and categorize your expenses.
  • Responsive Design: Works on desktop and mobile devices.

Table of Contents

Screenshots

Dashboard

Dashboard Screenshot Soon

Expense Form

Expense Form Screenshot Soon

Tech Stack

Installation

  1. Clone the repository:

    git clone https://github.com/tylerbert31/Nxt-Expense.git
  2. Navigate to the project directory:

    cd Nxt-Expense
  3. Install dependencies:

    npm install
    npx prisma generate
    npx prisma db push
  4. Set up environment variables:

    Create a .env.local file in the root of the project and add your Clerk API keys and other configuration:

    NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=<your-clerk-publishable-key>
    NEXT_PUBLIC_CLERK_SIGN_IN_URL=/sign-in
    NEXT_PUBLIC_CLERK_SIGN_UP_URL=/sign-up
    DATABASE_URL=<your-postgres-url>
  5. Run the development server:

    npm run dev

    Open http://localhost:3000 in your browser to see the app in action.

Usage

  1. Sign Up / Sign In: Use Clerk authentication to create an account or sign in.
  2. Add Expenses: Click the "Add expense" on the homepage to add a new expense.
  3. View Dashboard: Access your expense dashboard to track and manage your expenses.

Contributing

Feel free to submit issues and pull requests. Here are a few ways you can contribute:

  • Report bugs
  • Suggest features

For more details on contributing, please check out the CONTRIBUTING.md file.

License

This project is licensed under the MIT License.


Make sure to replace the placeholder links and paths with actual ones relevant to your project. If you want to add images, create an assets directory in your repo and put your images there, then use relative paths as shown.