# Importing necessary modules from flask import Flask, request, jsonify from flask_sqlalchemy import SQLAlchemy from werkzeug.security import generate_password_hash, check_password_hash # Creating Flask app instance app = Flask(__name__) # Configuring the database app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///users.db' db = SQLAlchemy(app) # Defining the User model class User(db.Model): id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(50), unique=True) password_hash = db.Column(db.String(100)) def set_password(self, password): self.password_hash = generate_password_hash(password) def check_password(self, password): return check_password_hash(self.password_hash, password) # Creating a route for user authentication @app.route('/login', methods=['POST']) def login(): data = request.get_json() username = data['username'] password = data['password'] user = User.query.filter_by(username=username).first() if not user or not user.check_password(password): return jsonify({'message': 'Invalid username or password'}), 401 token = generate_token(user) return jsonify({'token': token}), 200 # Creating a Chart of Accounts chart_of_accounts = { 'Assets': { 'Cash': 0, 'Accounts Receivable': 0, 'Inventory': 0 }, 'Liabilities': { 'Accounts Payable': 0, 'Loans Payable': 0 }, 'Equity': { 'Retained Earnings': 0, 'Share Capital': 0 }, 'Revenue': { 'Sales': 0, 'Interest Income': 0 }, 'Expenses': { 'Cost of Goods Sold': 0, 'Salaries and Wages': 0, 'Rent and Utilities': 0, 'Taxes': 0 } } # Creating a General Ledger class GeneralLedger: def __init__(self): self.transactions = [] def add_transaction(self, account, amount): self.transactions.append({ 'account': account, 'amount': amount }) def get_balance(self, account): balance = 0 for t in self.transactions: if t['account'] == account: balance += t['amount'] return balance # Creating an Accounts Payable class class AccountsPayable: def __init__(self): self.payments = [] def add_payment(self, vendor, amount, due_date): self.payments.append({ 'vendor': vendor, 'amount': amount, 'due_date': due_date }) def get_balance(self): balance = 0 for p in self.payments: balance += p['amount'] return balance # Creating an Accounts Receivable class class AccountsReceivable: def __init__(self): self.invoices = [] def add_invoice(self
Skip to main content