Git Product home page Git Product logo

0mppula / money-mapper Goto Github PK

View Code? Open in Web Editor NEW
2.0 1.0 0.0 666 KB

A Next.js 13 fullstack finance tracker for organizing personal finances. Covers income, taxes, assets, debt, and net worth management. Utilizes next-auth for user authentication and stores user data in a MongoDB database with prisma ORM.

Home Page: https://moneymapper.vercel.app

TypeScript 96.97% CSS 1.34% JavaScript 1.69%
axios data-visualization date-fns finance-application finance-tracker lucide-react mongodb next-auth next-themes nextjs13

money-mapper's Introduction

Money Mapper

What is Money Mapper?

Money Mapper is a Next.js 13 fullstack finance tracker for organizing personal finances. Covers income, taxes, assets, debt, and net worth management. Utilizes next-auth for user authentication and stores user data in a MongoDB database with prisma ORM. The app uses shadcn-ui with tailwind css, providing a visually appealing and responsive user interface. Global client state is managed with zustand, ensuring efficient and streamlined data management across the app. Emphasizing user experience, the app offers both dark and light modes to suit individual preferences. To enhance data visualization, financial information is presented through interactive charts and comprehensive tables, allowing users to gain valuable insights at a glance.


The Dashboard page

Money Mapper dashboad page

The Money page

Money Mapper money page

The Login page

Money Mapper login page


How to Set Up the Project Locally

Prerequisites

Node version 14.x

Cloning the repository

git clone https://github.com/0mppula/money-mapper.git

Install packages

npm i

.env File Configuration

In the root of the project create an .env file and declare the following variables:

DATABASE_URL=
NEXTAUTH_SECRET=
GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=
GITHUB_CLIENT_ID=
GITHUB_CLIENT_SECRET=

Populate the variables with the corresponding data.

Setup Prisma

npx prisma db push

Start the app

npm run dev

Available commands

Running commands with npm npm run [command]

command description
dev Starts a development instance of the app

Tech Stack

Framework

  • Front-end Framework: Next.js (v13.4.12)

UI

  • UI Library: shadcn-ui
  • UI Styling: tailwindcss (v3.3.3) with tailwindcss-animate (v1.0.6)
  • Theming: next-themes (v0.2.1)
  • Data Visualization: recharts (v2.7.2)
  • Icons: @radix-ui/react-icons (v1.3.0), react-icons (v4.10.1) & lucide-react (v0.263.1)
  • Date Picker: react-day-picker (v8.8.0)
  • Date Manipulation: date-fns (v2.30.0)
  • CSS Utility: clsx (v2.0.0)
  • Class Variance Management: class-variance-authority (v0.7.0)

State Managment

  • Global State Management: zustand (v4.4.0)
  • Data Fetching and Management: @tanstack/react-query (v4.32.6) and @tanstack/react-table (v8.9.3)
  • Form Handling: react-hook-form (v7.45.2) with @hookform/resolvers (v3.1.1)
  • State Validation: zod (v3.21.4)

Backend & Authentication

  • Prisma ORM: @prisma/client (v5.1.0) with prisma (v5.1.0) as a dev dependency
  • User Authentication: next-auth (v4.22.3)
  • API Requests: axios (v1.4.0)
  • TypeScript: (v5.1.6)
  • Type Definitions: @types/node (v20.4.5), @types/react (v18.2.18), @types/react-dom (v18.2.7)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.