I’m actively looking for collaborators to help add new features and enhance this project further!
If you have ideas, expertise, or just the enthusiasm to contribute, feel free to:
✨ Together, we can make this project even better! ✨
Begin by cloning the SplitWise repository to your local machine:
git clone https://github.com/PawanSirsat/SplitWise.git
Navigate to the project directory and install the required Node.js packages:
cd splitwise
npm install
Install Tailwind CSS and initialize it in your project:
npm install -D tailwindcss
npx tailwindcss init
Skip the manual steps below and directly migrate my database configuration and data!
I can provide these details to you. Just email me at [email protected], and I’ll share them with you!
This automated process ensures you avoid errors and get started instantly.
If you prefer to set up the database manually, follow these steps:
⚠️ Warning: Ensure that you use the attribute names and related collections exactly as mentioned below. To avoid errors, copy and paste the names directly where applicable.
Users
string
(Default: -
)string
(Default: -
)email
(Default: -
)string
(Default: -
)Groups
string
(Default: -
)Relationship
(Two-way Relationship with Users
; Many to one
,
Attribute Key (related collection): groups
, Cascade on delete)Relationship
(Two-way Relationship with Users; Many to Many
,
Attribute Key (related collection): UserMember
, Set Null on delete)Friends
Relationship
(Two-way Relationship with Users; Many to many
,
Attribute Key (related collection): friendCollection
, Set Null on delete)Relationship
(Two-way Relationship with Users; Many to one
,
Attribute Key (related collection): List
, Set Null on delete)Activity
string
(Default: -
)DateTime
(Default: -
)string
(Default: -
) Note: If you change this spelling (Amout), update it in the React app.boolean
(Default: false
)Relationship
(Two-way Relationship with Users; Many to many
,
Attribute Key (related collection): members
, Set Null on delete)Relationship
(Two-way Relationship with Users; Many to one
,
Attribute Key (related collection): activity
, Set Null on delete)Relationship
(Two-way Relationship with Groups; Many to one
,
Attribute Key (related collection): activity
, Cascade on delete)Transaction
string
(Default: -
)DateTime
(Default: -
)boolean
(Default: false
)Relationship
(Two-way Relationship with Users; Many to one
,
Attribute Key (related collection): transaction
, Set Null on delete)Relationship
(Two-way Relationship with Users; Many to one
,
Attribute Key (related collection): transactionId
, Set Null on delete)Navigate to Collection Settings:
Modify Permissions:
Any
.Save Changes:
.env.local
file and add the copied IDs as follows:.env.sample
VITE_APPWRITE_URL='https://cloud.appwrite.io/v1'
VITE_APPWRITE_PROJECT_ID='67c067565211fbcf173'
VITE_APPWRITE_DATABASE_ID='657c0953b37f27853d8'
VITE_APPWRITE_USER_COLLECTION_ID='657casd56db7f49cee3b20'
VITE_APPWRITE_GROUPS_COLLECTION_ID='657c09839424664asd87496'
VITE_APPWRITE_ACTIVITY_COLLECTION_ID='657c099dd2eda1ddebb'
VITE_APPWRITE_FRIENDS_COLLECTION_ID='681b28b356casds5dd28d'
VITE_APPWRITE_TRANSACTION_COLLECTION_ID='65aasd54f3a07aec3c8'
Finally, start the development server:
npm run dev
Deploy on Vercel:
Configure Appwrite Integration:
https://your-project-name.vercel.app
).Web App
.Name
field, paste your Vercel deployment URL, and in the Hostname
field, enter *.vercel.app
.Complete Setup:
If you encounter any issues with the database or need further assistance, feel free to email me at: p1.sirsat1998@gmail.com.
https://github.com/user-attachments/assets/a09c0edf-5d71-4417-b03d-39db91105be6
Google Drive Complete Application DOC
React - A JavaScript library for building user interfaces. React Router - Declarative routing for React.js. Tailwind CSS - A utility-first CSS framework.
This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.
Currently, two official plugins are available:
If you are developing a production application, we recommend updating the configuration to enable type aware lint rules:
parserOptions
property like this:export default {
// other rules...
parserOptions: {
ecmaVersion: "latest",
sourceType: "module",
project: ["./tsconfig.json", "./tsconfig.node.json"],
tsconfigRootDir: __dirname,
},
};
plugin:@typescript-eslint/recommended
to plugin:@typescript-eslint/recommended-type-checked
or plugin:@typescript-eslint/strict-type-checked
plugin:@typescript-eslint/stylistic-type-checked
plugin:react/recommended
& plugin:react/jsx-runtime
to the extends
list