Skip to content

Repository files navigation

💰 Reeni - reminder (Lending & Borrowing Tracker)

Reeni Logo

A modern, bilingual (Bengali) web application to track your lending and borrowing transactions.

ReactTypeScriptViteFirebaseTailwind CSS

Live LinkBackend RepoReport BugRequest Feature


✨ Features

🔐 Authentication

  • Email/Password registration and login
  • Google Sign-In with one click
  • Email Verification to ensure valid email addresses
  • Secure session management with Firebase Auth

📊 Dashboard

  • View all your lending (আমি ধার দিয়েছি) and borrowing (আমি ধার নিয়েছি) transactions
  • Tab-based navigation for easy switching between lent and borrowed items
  • Pagination for handling large datasets
  • Edit & Delete transactions with confirmation dialogs
  • Mark as Returned to move items to history

📝 Add New Transaction

  • Quick form to add new lending or borrowing entries
  • Fields: Amount, Person, Due Date, Return Date
  • Automatic association with your user account

📜 History

  • View all completed/returned transactions
  • Separate tabs for lent and borrowed history
  • Delete old history entries

👤 Profile

  • View and edit your profile information
  • Name, Email, Phone number management
  • Sign out functionality

Note: When a user edits and saves their profile (name or phone) the updated profile is persisted to the browser's localStorage under the key reeni_user_profile. This is a client-side cache that merges with Firebase user data on load — changes saved here are not automatically sent to the backend unless you explicitly implement server-side profile persistence.

🎨 UI/UX

  • Fully responsive design (mobile, tablet, desktop)
  • Bengali language interface
  • Skeleton loaders for smooth loading experience
  • SweetAlert2 for beautiful confirmation dialogs
  • Clean, modern design with Tailwind CSS

🛠️ Tech Stack

CategoryTechnology
FrontendReact 19, TypeScript
StylingTailwind CSS 4
Build ToolVite 6
AuthenticationFirebase Auth
DatabaseMongoDB (via Express backend)
State ManagementReact Context API
RoutingReact Router 7
HTTP ClientAxios
AnimationsFramer Motion
IconsReact Icons
AlertsSweetAlert2

🚀 Getting Started

Prerequisites

  • Node.js 18+
  • npm or yarn
  • Firebase project with Authentication enabled
  • MongoDB backend server

Installation

  1. Clone the repository

    git clone https://github.com/mehediScriptDev/Reeni.git
    cd Reeni
  2. Install dependencies

    npm install
  3. Set up environment variables

    Create a .env.local file in the root directory.

    💬 Need the environment variables? Message me or open an issue to request them!

  4. Start the development server

    npm run dev
  5. Open your browser

    Navigate to http://localhost:5173


📁 Project Structure

src/
├── Components/
│ ├── Add-new/ # Add transaction form
│ ├── Auth/ # Login & Registration
│ ├── Dashboard/ # Main transaction list
│ ├── Header/ # Navigation header
│ ├── History/ # Completed transactions
│ ├── Profile/ # User profile management
│ └── Footer/ # App footer
├── context/
│ └── AuthContext.tsx # Authentication state management
├── config/
│ └── api.ts # API configuration
├── firebase/
│ └── firebase.init.ts # Firebase initialization
├── App.tsx # Main app component
├── main.tsx # Entry point with routing
└── ProtectedApp.tsx # Auth-protected wrapper

🔧 Available Scripts

CommandDescription
npm run devStart development server
npm run buildBuild for production
npm run previewPreview production build
npm run lintRun ESLint

🌐 API Endpoints

The app connects to a backend server at https://reeni-server.vercel.app

🔗 Backend Repository:github.com/mehediScriptDev/ReeniServer

MethodEndpointDescription
GET/new-list?userId=Get user's transactions
POST/new-listCreate new transaction
PUT/new-list/:idUpdate transaction
DELETE/new-list/:idDelete transaction
GET/history?userId=Get user's history
POST/historyAdd to history
DELETE/history/:idDelete history item

🔒 Security

  • All data is user-specific (filtered by Firebase UID)
  • Email verification required for new accounts
  • Secure Firebase Authentication
  • Environment variables for sensitive configuration

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

💬 Want to contribute or have questions? Message me or open an issue - I'd love to help!


📄 License

This project is licensed under the MIT License - see the LICENSE file for details.


👨‍💻 Author

Mehedi


⭐ Star this repo if you find it helpful!

Made with ❤️ in Bangladesh 🇧🇩

About

Reeni, a MERN stack application to track borrowed and lent money with automated email reminders

Topics

Resources

Stars

8 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages