Sign inSign up

pier276/track-it

By pier276

•Updated over 1 year ago

Track It is a backend application designed to help users manage their finances efficiently.

Image
API management
Web servers
Databases & storage
0

179

pier276/track-it repository overview

Track It Logo

⁠Track It - Personal Finance Tracking App

Track It is a backend application designed to help users manage their finances efficiently. With this app, users can track their income and expenses, monitor their budget, and gain insights into their financial habits. Built with Nest.js⁠, Track It provides a secure and scalable solution for personal finance management.

⁠Table of Contents

  • Features
  • Tech Stack
  • API Documentation
  • Access Key Header
  • Installation
    • GitHub
    • Docker Image
  • Environment Variables
  • Running the App
  • License

⁠Features

  • User Authentication:
    Supports registration and authentication using email and password. Implemented with JWT⁠ for secure token-based authentication.

  • Email Verification: To complete registration, users must confirm their email address. Email delivery is handled via the Mailersend⁠ service.

  • User Profile:
    Each user has a personal profile where they can manage their budget and transactions.

  • Category management:
    Users can create custom categories to organize their transactions or use default categories.

  • Transactions:
    Users can add income and expense transactions with assigned categories.

  • Rate Limiting:
    Prevents abuse by applying request rate limiting.

  • API Documentation:
    Comprehensive API documentation available via Swagger⁠ at /api.

  • Data Validation:
    Incoming data is validated using NestJS’s built-in DTO (Data Transfer Object) validation with decorators and a class validator system.

  • PostgreSQL with Prisma ORM:
    The project uses Prisma⁠ as an ORM and PostgreSQL⁠ as the database.

  • Security Best Practices:
    Implemented security measures include JWT⁠, Bcrypt⁠, Throttler⁠, and Helmet⁠ to enhance protection.

  • Testing:
    The entire project is covered with end-to-end (E2E) tests using Supertest⁠ and Jest⁠.

⁠Tech Stack

⁠Swagger API Documentation

For a detailed overview of the available API endpoints, request/response structures, and data models, the Swagger documentation is available at /api. This documentation provides interactive API exploration and helps developers understand and integrate with the API efficiently.

⁠Access Key Header

All API requests (except authentication routes) must include the following header:

Authorization: Bareer <json_web_token>

⁠Installation

⁠GitHub
$ git clone https://github.com/Pier228/track-it-backend.git
$ cd track-it-backend
$ npm install
⁠Docker Image

The Docker image for this project is available on Docker Hub⁠.

Docker Hub

⁠Environment Variables

To run this application, you need to configure several environment variables.

  1. Create a .env file in the root directory of the project.
  2. Add required environment variables.

You can also refer to the .env.example file for a complete list of required environment variables.

⁠Running the app

After setting up the .env file, you can start the application using the following commands:

# Generate prisma client
$ npx prisma generate

# Build the application
$ npm run build

# Start in development mode
$ npm run start

# Start in watch mode
$ npm run start:dev

# Start in production mode
$ npm run start:prod

⁠License

This project is licensed under the MIT License - see the LICENSE file for details.

Tag summary

Content type

Image

Digest

sha256:66a5cdf39…

Size

231.7 MB

Last updated

over 1 year ago

docker pull pier276/track-it