Accounting System Project Steps using Visual C# and
SQLite
Step 1: Set Up the Development Environment - Install Visual Studio and create a new Windows Forms Application.
Step 2: Create SQLite Database - Name it accounting.db and add essential tables.
Step 3: Design Login Form (LoginForm) with Username/Password input and login validation.
Step 4: Create DashboardForm with navigation buttons to other forms.
Step 5: Build ClientsForm to manage client data (Add/Edit/Delete).
Step 6: Build ProductsForm to manage product data (Add/Edit/Delete).
Step 7: Build InvoicesForm to create invoices and calculate totals.
Step 8: Build InvoiceListForm to display and filter all invoices.
Step 9: Build PaymentsForm to record payments and calculate balances.
Step 10: Build ReportsForm to display revenue and profit reports.
Step 11: Test the application for correctness and functionality.
Step 12: Prepare final presentation, documentation, and upload to eLearning portal.
SQLite Database Schema SQL Code
-- Create Users Table
CREATE TABLE Users (
UserID INTEGER PRIMARY KEY AUTOINCREMENT,
Username TEXT NOT NULL,
Password TEXT NOT NULL,
Role TEXT
);
-- Insert default users
INSERT INTO Users (Username, Password, Role) VALUES
('admin', '12345', 'Admin'),
('mohamed', 'm123', 'Accountant'),
('ahmad', 'a123', 'Viewer');
-- Create Clients Table
CREATE TABLE Clients (
ClientID INTEGER PRIMARY KEY AUTOINCREMENT,
Name TEXT NOT NULL,
Phone TEXT,
Email TEXT
);
-- Create Products Table
CREATE TABLE Products (
ProductID INTEGER PRIMARY KEY AUTOINCREMENT,
Name TEXT NOT NULL,
Price REAL NOT NULL,
Quantity INTEGER NOT NULL,
Category TEXT
);
-- Create Invoices Table
CREATE TABLE Invoices (
InvoiceID INTEGER PRIMARY KEY AUTOINCREMENT,
ClientID INTEGER,
Date TEXT,
TotalAmount REAL,
FOREIGN KEY (ClientID) REFERENCES Clients(ClientID)
);
-- Create InvoiceItems Table
CREATE TABLE InvoiceItems (
ItemID INTEGER PRIMARY KEY AUTOINCREMENT,
InvoiceID INTEGER,
ProductID INTEGER,
Quantity INTEGER,
Price REAL,
FOREIGN KEY (InvoiceID) REFERENCES Invoices(InvoiceID),
FOREIGN KEY (ProductID) REFERENCES Products(ProductID)
);
-- Create Payments Table
CREATE TABLE Payments (
PaymentID INTEGER PRIMARY KEY AUTOINCREMENT,
InvoiceID INTEGER,
AmountPaid REAL,
PaymentDate TEXT,
FOREIGN KEY (InvoiceID) REFERENCES Invoices(InvoiceID)
);