main
Arlind 2023-06-15 02:23:13 +02:00
parent 8db659336c
commit 21c29308c2
11 changed files with 57 additions and 20 deletions

BIN
1.png 100644

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

BIN
2.png 100644

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

BIN
3.png 100644

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

BIN
4.png 100644

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

BIN
5.png 100644

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

View File

@ -1,14 +1,17 @@
# My Finance Planer
![Screenshot](1.png)
My Finance Planer is a fantastic application that helps you manage your finances and provides money-saving tips. It offers an intuitive user interface and useful features to help you achieve your financial goals.
## Features
- **Financial Overview:** Display your account balances, income, and expenses in a clear and concise manner.
![Screenshot](3.png)
- **Budget Management:** Define budgets for different categories and keep track of your spending.
- **Savings Tips:** Receive regular savings tips and advice to reduce your expenses.
![Screenshot](5.png)
- **Custom Goals:** Set personalized financial goals and track your progress.
- **Monthly budget:** Set personalized monthly budget maximums and keep your spendings under control.
![Screenshot](4.png)
## Installation
@ -21,8 +24,9 @@ My Finance Planer is a fantastic application that helps you manage your finances
1. Upon opening the app, you will need to create one or more accounts.
2. Click on one account card to open the account details and add transactions.
3. Navigate through the various tabs to view your income, expense and budget check.
4. Tap the info button in the app bar to access the saving tips.
4. Tap the info button in the app bar to access the saving tips.,
5. Configure your user settings and language through the settings menu.
![Screenshot](2.png)
6. Regularly update your expenses to stay on top of your financial situation.
## Contributors

View File

@ -186,6 +186,7 @@ class AccountDetailPageState extends State<AccountDetailPage>
TabBar(
controller: _tabController,
labelColor: Colors.black,
labelStyle: const TextStyle(fontSize: 14),
unselectedLabelColor: Colors.black54,
indicator: MaterialIndicator(
height: 4,

View File

@ -1,5 +1,5 @@
{
"title" : "Finanzplaner",
"title" : "My Finance Planner",
"delete" : "Löschen",
"deleteaccount" : "Account löschen",
"sure" : "Sind Sie sicher, dass Sie dieses Konto löschen möchten?",
@ -22,5 +22,6 @@
"language": "Sprache",
"currency": "Währung",
"budget": "Budgetcheck",
"progress": "von deinem Budget ausgegeben"
"progress": "von deinem Budget ausgegeben",
"monthlyexpenses": "Monatliche Ausgaben"
}

View File

@ -1,5 +1,5 @@
{
"title" : "Financial Planner",
"title" : "My Finance Planner",
"delete" : "Delete",
"deleteaccount" : "Delete account",
"sure" : "Are you sure you want to delete this account?",
@ -22,5 +22,6 @@
"language": "Language",
"currency": "Currency",
"budget": "Budget check",
"progress": "of your budget spent"
"progress": "of your budget spent",
"monthlyexpenses": "Monthly Expenses"
}

View File

@ -1,27 +1,54 @@
import 'package:flutter/material.dart';
import 'package:easy_localization/easy_localization.dart';
import 'package:syncfusion_flutter_charts/charts.dart';
import 'expense_data.dart';
import 'package:flutter_neumorphic/flutter_neumorphic.dart';
class MonthlyExpensesChart extends StatelessWidget {
final List<ExpenseData> data;
const MonthlyExpensesChart({super.key, required this.data});
const MonthlyExpensesChart({Key? key, required this.data}) : super(key: key);
@override
Widget build(BuildContext context) {
return SizedBox(
height: 300,
child: SfCartesianChart(
primaryXAxis: CategoryAxis(),
series: <ChartSeries>[
ColumnSeries<ExpenseData, String>(
dataSource: data,
xValueMapper: (ExpenseData expense, _) => expense.month,
yValueMapper: (ExpenseData expense, _) => expense.amount,
color: Colors.blue,
height: 240,
child: Neumorphic(
style: NeumorphicStyle(
shape: NeumorphicShape.flat,
depth: 8,
intensity: 0.6,
surfaceIntensity: 0.25,
shadowLightColor: Colors.white,
shadowDarkColor: Colors.black87,
color: Colors.grey[100],
),
child: SfCartesianChart(
primaryXAxis: CategoryAxis(),
series: _buildChartSeries(),
tooltipBehavior: TooltipBehavior(enable: true),
title: ChartTitle(
text: 'monthlyexpenses'.tr(),
textStyle: const TextStyle(
fontWeight: FontWeight.bold,
fontSize: 14,
),
),
],
legend: Legend(
isVisible: false,
),
),
),
);
}
}
List<ChartSeries<ExpenseData, String>> _buildChartSeries() {
return [
ColumnSeries<ExpenseData, String>(
dataSource: data,
xValueMapper: (ExpenseData expense, _) => expense.month,
yValueMapper: (ExpenseData expense, _) => expense.amount,
color: Colors.blue.shade200,
),
];
}
}

View File

@ -1,5 +1,6 @@
import 'dart:convert';
import 'package:awesome_dialog/awesome_dialog.dart';
import 'package:flutter/services.dart';
import 'package:flutter_neumorphic/flutter_neumorphic.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'package:tests/preferences.dart';
@ -30,6 +31,7 @@ class FinancialPlannerApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
SystemChrome.setEnabledSystemUIMode(SystemUiMode.manual, overlays: []);
return MaterialApp(
localizationsDelegates: context.localizationDelegates,
supportedLocales: context.supportedLocales,
@ -128,8 +130,9 @@ class HomePageState extends State<HomePage> {
),
actions: [
Padding(
padding: const EdgeInsets.only(right: 16.0, top: 3, bottom: 7),
padding: const EdgeInsets.only(right: 16.0, top: 2, bottom: 0),
child: NeumorphicButton(
margin: EdgeInsets.only(bottom: 10),
onPressed: () async {
await Navigator.push(
context,