shawndcarpenter / sdc_doughfin_be

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

DoughFin_BE

Introduction

DoughFin is a user-friendly financial management app designed to help individuals effortlessly track their income, categorize expenses, and create budgets. With DoughFin, managing your finances becomes intuitive, empowering you to make informed decisions about your money.

Features

Income Tracking: Automatically track your income from various sources to see how much you're earning.
Expense Categorization: Automatically categorize your expenses for a clearer understanding of your spending habits.
Budget Creation: Set up personalized budgets to control your spending and achieve your financial goals.
Insightful Reports: Get detailed reports and insights into your financial health, helping you make better financial decisions.
Secure Account Linking: Safely link your bank account(s) for real-time transaction updates.

Endpoint Testing

Postman Environment

Database Schema

Doughfin from DB Designer

GraphQl Contract

type Query {
  user(id: ID!): User
  users: [User]
  incomeRecords(userId: ID!): [Income]
  expenseRecords(userId: ID!): [Expense]
}

type User {
  id: ID!
  username: String!
  email: String!
  incomes: [Income]
  expenses: [Expense]
}

type Income {
  id: ID!
  user: User!
  source: String!
  amount: Float!
  date: String! # ISO 8601 Date format, could also use a custom DateTime scalar type
}

type Expense {
  id: ID!
  user: User!
  category: String!
  amount: Float!
  date: String! # ISO 8601 Date format, could also use a custom DateTime scalar type
}

type Mutation {
  createUser(username: String!, email: String!, password: String!): User
  addIncome(userId: ID!, source: String!, amount: Float!, date: String!): Income
  addExpense(userId: ID!, category: String!, amount: Float!, date: String!): Expense
  # Add more mutations for updating and deleting records as needed
}

Installation

ensure you have rails@3.2.2 installed
ensure you have postgresql@14.0+ installed
exec bundle install from project root
exec rails db:{drop,create,migrate} to initiate database
exec rails dev:seed to initiate dev seeds
exec rails server to start local dev

Testing

exec bundle exec rspec after you've installed the app.

Acknowledgments

Thank you to all the contributors who have helped shape DoughFin. Special thanks to our users for trusting us with their financial management needs.

About

License:Apache License 2.0


Languages

Language:Ruby 97.8%Language:Dockerfile 1.7%Language:Shell 0.3%Language:HTML 0.2%