![Screenshot 2023-06-13 at 11 58 22 PM](https://private-user-images.githubusercontent.com/47270995/246311868-d317f556-9cee-430e-8fc9-841d15527ef2.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk0NDc3MzgsIm5iZiI6MTczOTQ0NzQzOCwicGF0aCI6Ii80NzI3MDk5NS8yNDYzMTE4NjgtZDMxN2Y1NTYtOWNlZS00MzBlLThmYzktODQxZDE1NTI3ZWYyLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEzVDExNTAzOFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTY5NmEzOWZjNGVkMTkxMDI2NGU3YzRmNjFiYzliOWM1NGM1OGRhY2U0ZmU5NWVhYzliMmQ0Nzg0ODBkNGY2NzEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.O6tiwxizhToq6yzEY2wpyK47ozleuxGtFbWE6fDGwfg)
- Make a project on Appwrite
- Make a database (copy database ID)
- Make 3 collections (copy their IDs) for expenses, budgets, incomes.
- Make a bucket (copy ID)
- Make a .env file containing.
NEXT_PUBLIC_APPWRITE_PROJECT_ID=<project ID>
NEXT_PUBLIC_APPWRITE_ENDPOINT=<appwrite endpoint> (you get this when creating your project on appwrite)
NEXT_PUBLIC_DATABASE_ID=<db ID>
NEXT_PUBLIC_EXPENSES_COLLECTION_ID=<expenses collection ID>
NEXT_PUBLIC_INCOMES_COLLECTION_ID=<incomes collection ID>
NEXT_PUBLIC_BUDGETS_COLLECTION_ID=<budgets collection ID>
NEXT_PUBLIC_BUCKET_ID=<bucket storage ID>
- Make relevant indexes.
Keeping these interfaces/types in mind. (these are attributes).
Transaction -> expenses / incomes.
Budget -> budget
export interface Transaction {
amount: number;
category: string;
currency: string;
date: string;
description: string;
tag: string;
title: string;
userId: string;
attachments?: string[];
}
export type Budget = {
title: string;
description: string;
userId: string;
food?: number;
transportation?: number;
travel?: number;
housing?: number;
healthcare?: number;
education?: number;
personal?: number;
insurance?: number;
savings?: number;
investments?: number;
business?: number;
utilities?: number;
other?: number;
amount: number;
entertainment?: number;
startingDate: string;
endDate: string;
currency: string;
}
- Install dependencies
- yarn dev
![Screenshot 2023-06-12 at 10 32 52 AM](https://private-user-images.githubusercontent.com/47270995/246311851-3cd6f18c-9f13-490c-a939-cbef9e83d495.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk0NDc3MzgsIm5iZiI6MTczOTQ0NzQzOCwicGF0aCI6Ii80NzI3MDk5NS8yNDYzMTE4NTEtM2NkNmYxOGMtOWYxMy00OTBjLWE5MzktY2JlZjllODNkNDk1LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEzVDExNTAzOFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWUxYjU0MTRlYTRlZTllZjgzOWM0NTk3MTFlMzNhMjRkOWQ1NTMyMDI1MzNkMjY0YTljMGYzNGE3ZWRmYjdjZmYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.lKb8S3JYOYtMlm9pFCa0lX7rR0WOI50wOeTuUSecenk)
![Screenshot 2023-06-11 at 6 15 15 PM](https://private-user-images.githubusercontent.com/47270995/246311849-bff691b1-96ea-43da-8709-0afdb57ea96c.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk0NDc3MzgsIm5iZiI6MTczOTQ0NzQzOCwicGF0aCI6Ii80NzI3MDk5NS8yNDYzMTE4NDktYmZmNjkxYjEtOTZlYS00M2RhLTg3MDktMGFmZGI1N2VhOTZjLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEzVDExNTAzOFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTZkNTI2Y2NmMTU2YjI0ZTc4MTBmYjQ5YWFjNDFhMzQ0MThkNDc3MTg5M2NkMjMyZTViZTQ0NDJlN2QyZDE1YmImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.e42am9N8DbuW72bZXzbeIaBIzYsRUs1D-q4NlpYnYJ8)
![Screenshot 2023-06-11 at 6 15 01 PM](https://private-user-images.githubusercontent.com/47270995/246311848-913b4395-619a-407b-86c8-4756c0423aa7.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk0NDc3MzgsIm5iZiI6MTczOTQ0NzQzOCwicGF0aCI6Ii80NzI3MDk5NS8yNDYzMTE4NDgtOTEzYjQzOTUtNjE5YS00MDdiLTg2YzgtNDc1NmMwNDIzYWE3LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEzVDExNTAzOFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWZlN2I3MGRmOWJiMTAwZTBkYjE4YWM1MGE0ZDc4NTY4MDA0MjM5NTFkYzk5NTBmNzNjMGYzN2Y3NTAxMjMyODQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.R9vT3_V-gmKVnRQxQqhvPP3PGU4uy9nSKBan5nAXTRg)
![Screenshot 2023-06-11 at 6 14 53 PM](https://private-user-images.githubusercontent.com/47270995/246311841-3f5484ac-e4af-44bf-bb2b-e9d1335d5dd3.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk0NDc3MzgsIm5iZiI6MTczOTQ0NzQzOCwicGF0aCI6Ii80NzI3MDk5NS8yNDYzMTE4NDEtM2Y1NDg0YWMtZTRhZi00NGJmLWJiMmItZTlkMTMzNWQ1ZGQzLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEzVDExNTAzOFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWY4NGU4NmI4ODJjYjQwYjE3ZTcyNGRhODZhYTVkZGFkMTc3YjRmMmQ5Mjc0NTBjMmFmZGNkNjBlZWNkOGU3MTcmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.ZDN_JdwILDnyi2ytz-60VYBz89sEaGN8IN6IIg53Ubw)
![Screenshot 2023-06-11 at 5 30 18 PM](https://private-user-images.githubusercontent.com/47270995/246311839-9489020e-2e22-4e93-9b5f-98af05b1a774.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk0NDc3MzgsIm5iZiI6MTczOTQ0NzQzOCwicGF0aCI6Ii80NzI3MDk5NS8yNDYzMTE4MzktOTQ4OTAyMGUtMmUyMi00ZTkzLTliNWYtOThhZjA1YjFhNzc0LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEzVDExNTAzOFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWZmZjI2YTNmMjRkODdjMGMzZWI1MTMxNzY4Mjk3M2JkMDIwNGJhZTFlM2MwNjNmY2M0NjNkN2JmM2VjYWI0ZjMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.6Immyx8KMsg3uMYtUlEgZdU3aKWPwu60VuD7w6zrgjc)