نرمافزار تقسیم هزینهها - Persian Cost Splitting Application
A modern, responsive web application for splitting expenses among friends and family. Built with React and Tailwind CSS, featuring a beautiful Persian UI with RTL support.
- 👥 Member Management: Add and manage group members
- 💰 Expense Tracking: Record expenses with detailed descriptions
- 🧮 Smart Calculations: Automatic calculation of debts and credits
- 📱 Responsive Design: Works perfectly on mobile and desktop
- 🌙 Dark/Light Theme: Toggle between themes
- 🔗 Share Functionality: Share expense data via URL
- 📊 Settlement Instructions: Clear payment instructions for debt settlement
- 🎨 Persian UI: Beautiful Persian interface with RTL support
- 💾 Local Storage: Data persistence across sessions
- ⚡ Fast Loading: Optimized performance with preloader
- Frontend: React 18
- Styling: Tailwind CSS
- Icons: Heroicons
- Font: Vazirmatn (Persian-optimized)
- Build Tool: Create React App
- Deployment: Vercel/Netlify ready
- Node.js (version 14 or higher)
- npm or yarn
-
Clone the repository
git clone https://github.com/MrArvand/dang-o-dong.git cd dang-o-dong -
Install dependencies
npm install
-
Start development server
npm start
-
Open your browser Navigate to
http://localhost:3000
npm run buildThe build files will be created in the build/ directory.
- Go to the "اعضا و هزینهها" (Members & Expenses) tab
- Enter member name in the input field
- Click "افزودن عضو" (Add Member)
- Select a member from the list
- Click the expand button to add expenses
- Enter expense description and amount
- Select participants
- Click "افزودن هزینه" (Add Expense)
- Go to the "تسویه حساب" (Settlement) tab
- View the summary cards showing total expenses
- Check the settlement instructions for payment details
- Click the "اشتراکگذاری" (Share) button
- Copy the generated link
- Share with friends to view the same data
Modify colors in tailwind.config.js:
colors: {
primary: {
50: '#eff6ff',
100: '#dbeafe',
// ... more shades
}
}The app uses Vazirmatn font for Persian text. You can change it in tailwind.config.js:
fontFamily: {
'vazir': ['Vazirmatn', 'sans-serif'],
}src/
├── components/ # React components
│ ├── MemberExpenseManager.js
│ ├── SettlementResults.js
│ ├── ThemeToggle.js
│ ├── ShareButton.js
│ ├── ShareIndicator.js
│ └── Preloader.js
├── utils/ # Utility functions
│ ├── calculationUtils.js
│ ├── persianUtils.js
│ └── shareUtils.js
├── App.js # Main application component
├── index.js # Application entry point
└── index.css # Global styles
This project includes a GitHub Actions workflow for automatic deployment to GitHub Pages.
-
Update the homepage URL in
package.json:"homepage": "https://[your-username].github.io/dang-o-dong"
Replace
[your-username]with your actual GitHub username. -
Enable GitHub Pages:
- Go to your repository settings
- Navigate to "Pages" section
- Set source to "GitHub Actions"
-
Push to main branch: The workflow will automatically:
- Build your React app
- Deploy to GitHub Pages
- Update on every push to main/master branch
npm run build
# Upload build/ folder contents to GitHub Pages- Push your code to GitHub
- Connect your repository to Vercel
- Deploy automatically
- Build the project:
npm run build - Upload the
build/folder to Netlify - Configure redirects for SPA routing
- Build the project:
npm run build - Upload contents of
build/folder to your hosting - Add
.htaccessfile for SPA routing:RewriteEngine On RewriteBase / RewriteRule ^index\.html$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.html [L]
- Fork the repository
- Create a feature branch:
git checkout -b feature-name - Commit your changes:
git commit -am 'Add feature' - Push to the branch:
git push origin feature-name - Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
- Vazirmatn Font for Persian typography
- Heroicons for beautiful icons
- Tailwind CSS for utility-first styling
- React for the amazing framework
If you have any questions or need help, please:
- Open an issue on GitHub
- Contact: [mr.arvand1@gmail.com]
- Website: [arvand.dev]
Made with ❤️ by Arvand