A modern financial management application for Shops with transaction tracking, reporting, and financial analytics.
- User authentication and profile management
- Transaction management (income and expenses)
- Financial dashboard with visualizations
- Expense and income category management
- Financial reports and data export
- Mobile-responsive design
- React.js for the frontend
- Firebase for authentication, database, and hosting
- React Router for navigation
- Bootstrap & React-Bootstrap for UI components
- Chart.js for data visualization
- Firebase Firestore for cloud database
- Clone the repository
- Install dependencies:
npm install - Create a
.env.localfile in the root directory with your Firebase configuration:REACT_APP_FIREBASE_API_KEY=your-api-key REACT_APP_FIREBASE_AUTH_DOMAIN=your-project-id.firebaseapp.com REACT_APP_FIREBASE_PROJECT_ID=your-project-id REACT_APP_FIREBASE_STORAGE_BUCKET=your-project-id.appspot.com REACT_APP_FIREBASE_MESSAGING_SENDER_ID=your-messaging-sender-id REACT_APP_FIREBASE_APP_ID=your-app-id - Start the development server:
npm start
-
Install Firebase CLI:
npm install -g firebase-tools -
Login to Firebase:
firebase login -
Initialize Firebase in your project:
firebase init -
Build your project:
npm run build -
Deploy to Firebase:
firebase deploy
- Register a new account or log in with existing credentials
- Navigate through the dashboard to view financial summary
- Add, edit or delete transactions
- Filter transactions by date, category or type
- View reports and export data as needed
- Update profile information in the profile section
Add these security rules to your Firebase console to secure your data:
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
// Only authenticated users can access
match /{document=**} {
allow read, write: if request.auth != null;
}
// Users can only read and write their own profile data
match /userProfiles/{userId} {
allow read, write: if request.auth != null && request.auth.uid == userId;
}
// Users can only read and write their own transactions
match /transactions/{transactionId} {
allow read, write: if request.auth != null && resource.data.userId == request.auth.uid;
}
// Users can only read and write their own categories
match /categories/{categoryId} {
allow read, write: if request.auth != null && resource.data.userId == request.auth.uid;
}
}
}
This project is proprietary and owned by Panekkatt Oil Mill.
For support, please contact the Panekkatt IT department.