- Install dependencies
npm install
- Start expo dev server in tunnel mode. Then connect over proxy URL, usefull for restrictive network conditions.
npx expo start --tunnel
SW7 semester project
License: GNU General Public License v3.0
Custom types, such as Expense, should be moved into ambient.d.ts
, such that they can be used globally, instead of having duplicate code.
Custom types outside ambient.d.ts
:
Allegedly, there are also some Gun types, which should be moved there.
If in a group, should be routed directly to list screen.
If not in a group, should route to join/create a group screen.
handlers/mealplan.tsx
app/(tabs)/meal.tsx
A button for toggling between light and dark mode, instead of having to change it in system settings.
Should be possible to join/create a group.
Preferably via either bluetooth or just GunDB.
handlers/list.tsx
app/(tabs)/shoppingList/index.tsx
The swipe should have a gradient and should cover the entire swipe
Can other people see your added items (assuming they are in the same group):
Create a custom storage adapter to persist GUN database.
Ensure that no money gets lost, when splitting expenses, e.g., if someone paid 100, which should be split amongst 3 people, then they are to receive 33.33... from the two others, and this could be rounded as:
Person 1: 33.34
Person 2: 33.33
Person 3: 33.33
Which means one person gets scammed. Perhaps there could be kept track of who "overpays" such that over time, this would equalize.
Create functionality for login/user creation and the right redirects
Join group functionality is not neccesary
This issue is an extension of issue #18
Currently, each item stays "open" after being swiped. They should be closed. This can be done using a ref on the Swipeable component and then using swipeableRef.current.close()
in closeModal
to close it. The problem is figuring out how to do this for each element, as it would otherwise only affect the last list item.
Note that this only needs to be implement for when pressing "No", as when pressing "Yes" it should be removed entirely.
handlers/expenses.tsx
app/(tabs)/expenses/index.tsx
Currently, calculateBalance
calculates using number of users in the group, meaning an expense between two users will also be calculated between the rest of the group.
Example expense:
Alice paid 50,-
Bob paid 0,-
Charlie is not part of the expense
Expected balances:
Alice: +25
Bob: -25
Charlie: 0
Actual balances:
Alice: +25
Bob: -12.5
Charlie: -12.5
When inputting text on the meal plan, it should be saved and shown to anyone in the group.
Example:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.