Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

13 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

CloudSave - Personal Finance Tracker

CloudSave is a comprehensive personal finance management application that helps users track their income, expenses, and financial insights. Built with a modern tech stack, it provides an intuitive interface for managing transactions, viewing financial reports, and gaining insights into spending patterns.

🌟 Features

User Features

  • User Authentication: Secure registration and login system with JWT-based authentication
  • Dashboard Overview: Comprehensive view of your financial status at a glance
  • Transaction Management:
    • Add, edit, and delete transactions
    • Categorize transactions as credit or debit
    • View transaction history with filtering options
  • Financial Insights:
    • Visual charts and graphs for spending analysis
    • Income vs. expense tracking
    • Category-wise expenditure breakdown
  • Reports: Generate detailed financial reports
  • Settings: Personalize your account and preferences
  • Email Notifications: Get notified about important financial activities

Admin Features

  • Admin Dashboard: Manage and monitor all users
  • User Management: View and manage user accounts
  • System Analytics: Track overall platform usage

πŸ› οΈ Technology Stack

Frontend

  • React.js: Modern UI library for building interactive interfaces
  • React Router: Client-side routing
  • Lucide React: Beautiful, consistent icon library
  • Framer Motion: Smooth animations and transitions
  • Context API: State management
  • CSS3: Custom styling with responsive design

Backend

  • Node.js: JavaScript runtime environment
  • Express.js: Fast, minimalist web framework
  • MongoDB: NoSQL database for data storage
  • Mongoose: MongoDB object modeling
  • JWT (JSON Web Tokens): Secure authentication
  • Bcrypt: Password hashing for security
  • Nodemailer: Email sending functionality
  • CORS: Cross-Origin Resource Sharing support

Development Tools

  • Nodemon: Auto-restart server during development
  • Webpack: Module bundler
  • Babel: JavaScript compiler
  • dotenv: Environment variable management

πŸ“‹ Prerequisites

Before you begin, ensure you have the following installed:

  • Node.js (v14 or higher)
  • npm or yarn package manager
  • MongoDB (local installation or MongoDB Atlas account)
  • Git for version control

πŸš€ Installation

1. Clone the Repository

git clone https://github.com/devagarwal07/CloudSave.git
cd CloudSave

2. Setup Backend (Server)

# Navigate to the server directory
cd CloudSave/Server

# Install dependencies
npm install

# Create a .env file in the Server directory
touch .env

Add the following environment variables to your .env file:

PORT=5000
MONGODB_URI=your_mongodb_connection_string
JWT_SECRET=your_jwt_secret_key
EMAIL_USER=your_email@example.com
EMAIL_PASSWORD=your_email_password

3. Setup Frontend

# Navigate to the frontend directory
cd ../Frontend

# Install dependencies
npm install

βš™οΈ Configuration

MongoDB Setup

  1. Local MongoDB: Install MongoDB locally and start the service

    mongod
  2. MongoDB Atlas (Cloud):

    • Create a free account at MongoDB Atlas
    • Create a new cluster
    • Get your connection string and add it to the .env file

Email Configuration

Configure your email service credentials in the .env file to enable email notifications:

  • Use Gmail, Outlook, or any SMTP service
  • For Gmail, you must use an App Password (2-Step Verification required)
  • Alternatively, configure OAuth 2.0 for more secure authentication

πŸƒβ€β™‚οΈ Running the Application

Development Mode

Start the Backend Server

cd CloudSave/Server
npm run server
# or for development with auto-restart
npm run dev

The server will start on http://localhost:5000

Start the Frontend

cd CloudSave/Frontend
npm run dev
# or
npm start

The frontend will typically start on http://localhost:3000 or http://localhost:5173 (Vite)

Production Mode

Backend

cd CloudSave/Server
npm start

Frontend

cd CloudSave/Frontend
npm run build

This will create a production-optimized build in the dist folder.

πŸ“ Project Structure

CloudSave/
β”œβ”€β”€ CloudSave/
β”‚   β”œβ”€β”€ Server/
β”‚   β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”‚   β”œβ”€β”€ config/
β”‚   β”‚   β”‚   β”‚   └── db.js              # Database configuration
β”‚   β”‚   β”‚   β”œβ”€β”€ controllers/
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ adminController.js # Admin operations
β”‚   β”‚   β”‚   β”‚   └── user.js            # User operations
β”‚   β”‚   β”‚   β”œβ”€β”€ middlewares/
β”‚   β”‚   β”‚   β”‚   └── auth.js            # Authentication middleware
β”‚   β”‚   β”‚   β”œβ”€β”€ models/
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ admin.js           # Admin schema
β”‚   β”‚   β”‚   β”‚   └── transaction.js     # Transaction schema
β”‚   β”‚   β”‚   └── utils/
β”‚   β”‚   β”‚       └── myMailer.js        # Email utility
β”‚   β”‚   β”œβ”€β”€ server.js                  # Main server file
β”‚   β”‚   β”œβ”€β”€ package.json
β”‚   β”‚   └── .env                       # Environment variables
β”‚   β”‚
β”‚   └── Frontend/
β”‚       β”œβ”€β”€ public/
β”‚       β”‚   β”œβ”€β”€ logo.png
β”‚       β”‚   └── logo.svg
β”‚       β”œβ”€β”€ src/
β”‚       β”‚   β”œβ”€β”€ pages/
β”‚       β”‚   β”‚   └── Dashboard/
β”‚       β”‚   β”‚       └── Dashboard.jsx  # Main dashboard
β”‚       β”‚   β”œβ”€β”€ components/
β”‚       β”‚   β”‚   └── AfterLogin/
β”‚       β”‚   β”‚       β”œβ”€β”€ Overview/      # Financial overview
β”‚       β”‚   β”‚       β”œβ”€β”€ Transaction/   # Transaction management
β”‚       β”‚   β”‚       β”œβ”€β”€ Insights/      # Financial insights
β”‚       β”‚   β”‚       β”œβ”€β”€ Reports/       # Reports generation
β”‚       β”‚   β”‚       └── Settings/      # User settings
β”‚       β”‚   β”œβ”€β”€ context/
β”‚       β”‚   β”‚   └── StoreContext.js    # Global state management
β”‚       β”‚   └── index.css
β”‚       └── package.json
β”‚
β”œβ”€β”€ .gitignore
└── README.md

πŸ”Œ API Endpoints

User Routes (/api/user)

  • POST /register - Register a new user
  • POST /login - User login
  • GET /profile - Get user profile (protected)
  • PUT /profile - Update user profile (protected)

Transaction Routes (/api/transaction)

  • GET / - Get all transactions for logged-in user (protected)
  • POST / - Create a new transaction (protected)
  • PUT /:id - Update a transaction (protected)
  • DELETE /:id - Delete a transaction (protected)

Admin Routes (/api/admin)

  • POST /login - Admin login
  • GET /users - Get all users (admin only)
  • GET /analytics - Get platform analytics (admin only)

Info Routes (/api/user)

  • GET /info - Get additional user information (protected)

πŸ”’ Security Features

  • Password Hashing: All passwords are hashed using bcrypt before storage
  • JWT Authentication: Secure token-based authentication
  • Protected Routes: Middleware to protect sensitive endpoints
  • CORS Configuration: Controlled cross-origin requests
  • Input Validation: Server-side validation using validator library
  • Environment Variables: Sensitive data stored in .env files

🎨 Key Components

Dashboard

The main dashboard provides:

  • Financial overview with key metrics
  • Quick access to all features
  • Responsive sidebar navigation
  • User profile display
  • Notification system

Transaction Management

  • Add income and expenses
  • Categorize transactions
  • Filter by date, type, or category
  • Real-time balance updates

Insights & Reports

  • Visual charts for spending patterns
  • Category-wise analysis
  • Monthly/yearly comparisons
  • Exportable reports

🀝 Contributing

Contributions are welcome! Please follow these steps:

  1. Fork the repository
  2. Create a new branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Development Guidelines

  • Follow the existing code style
  • Write clear commit messages
  • Add comments for complex logic
  • Test your changes thoroughly
  • Update documentation as needed

πŸ“ License

This project is open source and available under the MIT License.

πŸ‘₯ Authors

πŸ™ Acknowledgments

  • Thanks to all contributors who have helped shape CloudSave
  • Built with love using open-source technologies
  • Special thanks to the Node.js, React, and MongoDB communities

πŸ“ž Support

If you encounter any issues or have questions, please open an issue in the GitHub repository.

🚧 Future Enhancements

  • Mobile application (React Native)
  • Budget planning and alerts
  • Multi-currency support
  • Bank account integration
  • Recurring transactions
  • Advanced analytics with AI insights
  • Export data to CSV/PDF
  • Multi-language support
  • Dark mode theme

πŸ“Š Screenshots

Coming soon - Add screenshots of your application dashboard, transaction management, and reports


Made with ❀️ by the CloudSave Team

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages