Giter Club home page Giter Club logo

shams's Introduction

Shams Family Funds

Welcome to Shams Family Funds, an application designed for managing family funds. With this app, you can easily keep track of family members and their shares. You can record payments made toward share bills and loans given to members and when they pay them back. In addition, the app provides account balances and calculates any debts owed.

Authorization

There are two user roles: USER and ADMIN. ADMIN users can add new data and access the complete list of members, while USER users can only view their own share, balance, debt, and loans. They cannot modify any data.

Tech Stack

This app was developed using Nuxt 3, TypeScript, TailwindCSS, and DaisyUI. Form validation is provided by Vee-Validate and Zod, while data fetching and caching is handled by Vue-Query. The app uses a Postgresql database and Prisma to access it. Authentication is implemented using JWT, with cookie-based storage, and an authorization system restricts specific tasks to ADMIN users.

The app is also a PWA, which means it can be installed on mobile devices and accessed from the home screen. It uses the Vite-PWA plugin under the hood.

You can build your container version of this app using Docker.

Container

Using the Dockerfile in this repo, you can build and run your container version of the app.

To build an image, run the following command inside the root of the project:

docker build -t YOUR_TAG_NAME .

CI/CD

This app uses Github Actions as its CI/CD. So whenever new code is pushed to the main branch, the application is rebuilt and re-deployed.

Run the Application

To run the app, you must provide two environment variables: DATABASE_URL and NUXT_JWT_SECRET. You can store these variables in a .env file in a local environment.

Using Node.js Locally

If you don't have pnpm installed you must first install it globally using npm:

npm install -g [email protected]

Then simply run the following commands to get started:

pnpm install
pnpm dev

Using Docker

After building a Docker image, you can run it with Docker:

docker run --rm -it -p 3000:3000/tcp --env-file YOUR_ENV_FILE YOUR_TAG_NAME

shams's People

Contributors

alimirmohammad avatar

Stargazers

 avatar

Watchers

 avatar  avatar

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.