Skip to content

Commit 370b3a4

Browse files
committed
docs: add README.md and update relazione.md
1 parent 655e830 commit 370b3a4

File tree

3 files changed

+91
-18
lines changed

3 files changed

+91
-18
lines changed

.idea/deploymentTargetSelector.xml

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

README.md

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
# 🐕 **Akira - Your Finances Made Easy and Private**
2+
3+
**Akira Financial Tracker** is an Android app designed to make personal finance management simple and intuitive.
4+
With Akira, you can easily track your expenses and income, stay within your budget, and analyze your financial habits—all.
5+
6+
🎯 **No sign-ups, no intrusive permissions, no third-party data sharing.**
7+
All your financial data is stored **locally** on your device, ensuring maximum privacy and security.
8+
9+
---
10+
11+
## 🚀 **Get Started with Akira Now!**
12+
13+
Download the latest **APK** to install Akira on your Android device from the [Releases](#) section!
14+
The APK is built directly from the source using **GitHub Actions**.
15+
16+
1. Download the latest APK from the [Releases](#) section.
17+
2. Enable **Install from Unknown Sources** in your device settings.
18+
3. Open the APK and follow the installation prompts.
19+
4. Launch Akira and start managing your finances!
20+
21+
---
22+
23+
## 🌟 **Key Features**
24+
25+
- 📊 **Budget Tracking** – Set your monthly budget and monitor your spending in real-time.
26+
- 📝 **Detailed Transaction History** – Log expenses and income with categories, dates, and descriptions.
27+
- 📈 **Interactive Statistics** – Analyze your financial habits with intuitive graphs and custom statistics.
28+
- 💹 **Stock Market Monitoring** – Check real-time stock data for any company, right from the app.
29+
- 🔒 **Privacy First** – No accounts, no ads, no data tracking. Your financial data stays with you.
30+
31+
---
32+
33+
## 🛠️ **How It Works**
34+
35+
1. **Set Your Budget** – Define a monthly spending limit to help manage your finances.
36+
2. **Log Transactions** – Easily add income and expenses with categories and descriptions.
37+
3. **Analyze Your Spending** – View clear statistics and interactive graphs to understand your financial habits.
38+
4. **Stay Informed** – Monitor the stock market to make smarter financial decisions.
39+
40+
---
41+
42+
## Credits
43+
44+
This project was made as an assignment for the **Mobile Systems** course of the *Technologies Of
45+
Informatics System* degree of the University Of Bologna.
46+
47+
Members of the group:
48+
- [Ezechiele Spina](https://github.com/zeke-code)

relazione.md

Lines changed: 42 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -101,20 +101,35 @@ e i relativi servizi.
101101
```bash
102102
Akira/
103103
├── data/
104-
├── local/
105-
│ ├── dao/
106-
│ │ └── TransactionDao.kt
107-
│ ├── database/
108-
│ │ └── AppDatabase.kt
109-
│ └── entities/
110-
│ ├── Transaction.kt
111-
│ └── UserSettings.kt
112-
└── remote/
113-
├── api/
114-
│ └── StockApiService.kt
115-
└── models/
116-
├── StockResponse.kt
117-
└── MarketData.kt
104+
│ ├── local/
105+
│ │ ├── dao/
106+
│ │ │ ├── BudgetDao.kt
107+
│ │ │ ├── CategoryDao.kt
108+
│ │ │ ├── EarningDao.kt
109+
│ │ │ └── ExpenseDao.kt
110+
│ │ ├── database/
111+
│ │ │ └── AkiraDatabase.kt
112+
│ │ ├── entities/
113+
│ │ │ ├── BudgetModel.kt
114+
│ │ │ ├── CategoryModel.kt
115+
│ │ │ ├── EarningModel.kt
116+
│ │ │ ├── EarningWithCategory.kt
117+
│ │ │ ├── ExpenseModel.kt
118+
│ │ │ ├── ExpenseWithCategory.kt
119+
│ │ │ ├── SettingItem.kt
120+
│ │ │ └── TransactionModel.kt
121+
│ │ └── repository/
122+
│ │ ├── FinancialRepository.kt
123+
│ │ ├── StocksRepository.kt
124+
│ │ └── UserRepository.kt
125+
│ └── remote/
126+
│ ├── api/
127+
│ │ ├── AlphaVentureService.kt
128+
│ │ └── GithubApiService.kt
129+
│ ├── models/
130+
│ ├── GithubReleaseModel.kt
131+
│ ├── StockQuoteModel.kt
132+
│ └── TimeSeriesDailyModel.kt
118133
```
119134

120135
Nel pacchetto `data` abbiamo quindi:
@@ -128,6 +143,7 @@ Nel pacchetto `data` abbiamo quindi:
128143
- `ExpenseDao`: contiene l'interfaccia per effettuare operazioni CRUD sulle spese.
129144
- database: contiene il database dell'applicazione e i dati già pregenerati per le categorie.
130145
- entities: contiene tutte le entità presenti nel database.
146+
- repository: contiene tutte le repository del progetto che agiscono come **Unique Source Of Truth** per i dati.
131147

132148
- **`BudgetModel.kt`**
133149
Rappresenta il modello per la gestione del budget mensile impostato dall'utente.
@@ -161,6 +177,15 @@ Nel pacchetto `data` abbiamo quindi:
161177
Modello per la gestione delle **impostazioni** dell'app.
162178
Memorizza le preferenze utente, come le notifiche attive, la valuta selezionata o altre configurazioni personalizzabili.
163179

180+
- **`FinancialRepository.kt`**
181+
Repository che restituisce tutti i dati riguardanti le finanze dell'utente
182+
183+
- **`StocksRepository.kt`**
184+
Repository che restituisce tutti i dati riguardanti le azioni delle aziende
185+
186+
- **`UserRepository.kt`**
187+
Repository che restituisce tutte le informazioni riguardo l'utente (SharedPreferences, impostazioni di appi)
188+
164189
- remote
165190

166191
- api: contiene i servizi per l'utilizzo di API remote, definendo i parametri da utilizzare per le chiamate.
@@ -203,18 +228,18 @@ per ricordare all'utente di registrare le proprie transazioni all'interno dell'a
203228

204229
## **Punti di forza**
205230

206-
- **Privacy e Sicurezza:** l'applicazione non richiede permessi invasivi e conserva tutti i dati in locale, garantendo un elevato livello di protezione della privacy.
231+
- **Privacy:** l'applicazione non richiede permessi invasivi e conserva tutti i dati in locale, garantendo un elevato livello di protezione della privacy.
207232
- **Performance Ottimizzate:** l'utilizzo di una sola Activity ha semplificato la gestione del ciclo di vita dei vari elementi, riducendo il rischio di crash e migliorando le prestazioni generali.
208233
- **Architettura Scalabile:** l'adozione dell'architettura MVVM e della Dependency Injection con Hilt facilita l'aggiunta di nuove funzionalità e la manutenzione del codice.
209234
- **UI moderna e molto semplice:** la UI è molto semplice e intuitiva, permettendo all'utente di fare tutto quello di cui ha bisogno in pochi tap.
210235

211236
## **Possibili Migliorie**
212237

213-
L'applicazione ha avuto uno sviluppo un po' travagliato. All'inizio era stata progettata per essere semplicemente un'applicazione a più view; il passaggio ad applicazione ad Activity singola mi ha rubato un po' di tempo per migliorare il tutto e aggiungere più feature.
238+
L'applicazione ha avuto uno sviluppo un po' travagliato. All'inizio era stata progettata per essere semplicemente un'applicazione a più view; il passaggio ad applicazione ad Activity singola mi ha rubato un po' di tempo che potrebbe essere stato investito per rifiniture varie e aggiunta di più feature.
214239

215240
Ecco i punti che sarebbe possibile migliorare:
216241

217-
1. L'utilizzo di JetPack Compose avrebbe potuto giovare molto all'applicazione, riducendo boilerplate code e riutilizzando elementi di UI più volte all'interno delle viste (i file XML sono inoltre noiosi da mantenere). La libreria non è stata utilizzata poiché lo sviluppo inizio con l'approccio delle Views per attenersi di più ai contenuti del corso.
242+
1. L'utilizzo di JetPack Compose avrebbe potuto giovare molto all'applicazione, riducendo boilerplate code e riutilizzando elementi di UI più volte all'interno delle viste (i file XML sono inoltre noiosi da mantenere). La libreria non è stata utilizzata poiché lo sviluppo iniziò con l'approccio delle Views per attenersi di più ai contenuti del corso.
218243
2. La vista delle statistiche può essere migliorata, offrendo più dati e un reload dei dati nei grafici migliori per migliorare le performance.
219244
3. La vista per la creazione di transazioni potrebbe essere più carina e andrebbe riprogettata, poiché al momento molto grezza anche se funzionale.
220245
4. Una feature sicuramente utile sarebbe la creazione personalizzata di categorie, non implementata per mancanza di tempo.

0 commit comments

Comments
 (0)