GithubHelp home page GithubHelp logo

pbudget's Introduction

Personal Budgeting API

Workflow API and Data Model

Workflow API and Data Model

Document

Tech Stack

  • Actix Web: web server framework for the microservice
  • Sea ORM: ORM for Database(SQLite)
  • JWT Authentication: For token-based Authentication

Endpoints

  • POST /api/register: Register a new user.
  • POST /api/login: Log in and receive a JWT token.
  • GET /api/profile: Get the profile information of the logged-in user.
  • PUT /api/profile: Update the profile information of the logged-in user.
  • GET /api/budgets: Get all budgets for the logged-in user.
  • POST /api/budgets: Create a new budget.
  • GET /api/budgets/{id}: Get a specific budget by ID.
  • PUT /api/budgets/{id}: Update a specific budget by ID.
  • DELETE /api/budgets/{id}: Delete a specific budget by ID.
  • GET /api/budgets/{id}/expenses: Get all expenses for a specific budget.
  • POST /api/budgets/{id}/expenses: Create a new expense for a specific budget.
  • GET /api/budgets/{id}/expenses/{expense_id}: Get a specific expense by ID.
  • PUT /api/budgets/{id}/expenses/{expense_id}: Update a specific expense by ID.
  • DELETE /api/budgets/{id}/expenses/{expense_id}: Delete a specific expense by ID.

Future Todos(v0.1.1)

  • Caching: Implemented caching using redis, fairly a side quest.
  • Compression of data: Went with default compressor instead of zstd, which was giving messy semantic bugs.
  • Deployment: Deploy to Heroku if I have enough dynos.
  • Frontend Integration: Simple frontend in react/next.js
  • Testing: Unit Tests and Integration Tests(I have never written tests)
  • Containerize: Containerize using Docker
  • Performance Optimization: I have thought of few ways:
    • reducing the dependency bloat in the entities and migration directory.
    • Using flamegraph to profile my project.
  • Documentation in Swagger(?): I don't see the harm having the API documentation in README.md

pbudget's People

Contributors

zokhcat avatar

Watchers

 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.