MoneyMaster is a financial SaaS platform designed to streamline personal finance management by connecting multiple bank accounts and providing real-time transaction updates. This project was developed as a learning exercise to deepen understanding of Next.js and other modern web technologies.
- 🔒 User Authentication: Secure SSR authentication with React Hook Form and Zod for proper validations.
- 🏠 Dashboard: Comprehensive summary of account details, total balance across all connected banks, recent transactions, and spending categories.
- 🏦 Account Management: Seamless management of linked bank accounts through Plaid integration.
- 💸 Payment and Transfers: Efficiently initiate and manage payment transfers between accounts using Dwolla.
- 🌐 API Integration: Robust backend communication for data fetching and server-side operations with Appwrite.
- 🔄 Data Fetching and State Management: Effective management of application state using React hooks and state management libraries.
- 🛠 Error Tracking: Integrated Sentry for comprehensive error tracking.
- 🎨 Styling and UI Components: Utilizes TailwindCSS, ShadCN, and Chart.js for a polished and responsive user interface.
- 📱 Responsiveness: Ensures a seamless user experience across desktop, tablet, and mobile platforms, adapting to various screen sizes and devices.
- Next.js
- TypeScript
- Appwrite
- Plaid
- Dwolla
- React Hook Form
- Zod
- TailwindCSS
- Chart.js
- ShadCN
To get started with MoneyMaster, follow these steps:
-
Clone the repository:
git clone https://github.com/lasindu2001/next-banking-app.git
-
Navigate to the project directory:
cd moneymaster
-
Install the dependencies:
npm install
-
Set up environment variables:
Create a
.env.local
file in the root directory and add the necessary environment variables as specified in.env.example
. -
Run the development server:
npm run dev
-
Open your browser and navigate to
http://localhost:3000
to view the application.
Contributions are welcome! If you have suggestions for improvements or encounter issues, please open an issue or submit a pull request.
For any questions or suggestions, feel free to reach out to me on LinkedIn or open an issue on GitHub.