Skip to content

Rajkoli145/FreelancerFlow

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

61 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

FreelancerFlow

License Production Ready Tests Coverage Security

React Node.js MongoDB Tailwind CSS

A production-ready, enterprise-grade platform for freelancers to manage their entire business

Live Demo API Docs


🎯 Overview

FreelancerFlow is a production-ready, full-stack application designed to help freelancers manage every aspect of their business - from client relationships to financial reporting. Built with modern technologies and enterprise-level security practices.

✨ Features

Core Functionality

  • πŸ“Š Dashboard - Real-time overview of earnings, payments, and active projects
  • πŸ‘₯ Client Management - Complete client database with contact history
  • πŸ“ Project Tracking - Hourly and fixed-price billing support
  • ⏱️ Time Logging - Track billable and non-billable hours
  • 🧾 Invoice Generation - Professional PDF invoices with automatic calculations
  • πŸ’° Payment Tracking - Monitor payments and outstanding balances
  • πŸ’³ Expense Management - Track business expenses for profitability analysis
  • πŸ“ˆ Reporting & Analytics - Financial insights and performance metrics
  • πŸ”” Notifications - Real-time updates and reminders
  • πŸ‘¨β€πŸ’Ό Admin Dashboard - Administrative controls and system metrics

Production Features

  • πŸ”’ Enterprise Security - Input sanitization, XSS protection, rate limiting
  • βœ… Comprehensive Testing - 70%+ code coverage with Jest
  • πŸ“š API Documentation - Interactive Swagger/OpenAPI docs
  • πŸ“Š Professional Logging - Winston with log rotation
  • πŸš€ CI/CD Pipeline - Automated testing and deployment
  • πŸ” Error Tracking - Structured error handling and monitoring
  • πŸ›‘οΈ Security Audits - Automated vulnerability scanning
  • πŸ“¦ Docker Support - Containerized deployment ready

πŸ—οΈ Tech Stack

Frontend

  • React 19.2 - Latest React with hooks
  • Vite - Lightning-fast build tool
  • Tailwind CSS - Utility-first CSS framework
  • Axios - HTTP client with interceptors
  • React Router - Client-side routing
  • Recharts - Data visualization

Backend

  • Node.js 20.x - JavaScript runtime
  • Express 5.x - Web framework
  • MongoDB 6.0 - NoSQL database
  • Mongoose - ODM for MongoDB
  • JWT - Secure authentication
  • Winston - Professional logging
  • Jest - Testing framework
  • Swagger - API documentation

Security & DevOps

  • Helmet.js - Security headers
  • express-mongo-sanitize - NoSQL injection protection
  • xss-clean - XSS attack prevention
  • hpp - HTTP Parameter Pollution protection
  • Rate Limiting - DDoS protection
  • GitHub Actions - CI/CD automation
  • ESLint - Code quality
  • Docker - Containerization

πŸš€ Quick Start

Prerequisites

  • Node.js >= 18.x
  • MongoDB >= 6.0
  • npm >= 9.x

Installation

  1. Clone the repository

    git clone https://github.com/Rajkoli145/FreelancerFlow.git
    cd FreelancerFlow
  2. Backend Setup

    cd backend
    npm install
    cp .env.example .env
    # Edit .env and add your configuration
    npm run dev

    πŸ“– Detailed backend setup: See backend/QUICKSTART.md

  3. Frontend Setup

    cd frontend
    npm install
    npm run dev
  4. Access the Application

    • Frontend: http://localhost:5173
    • Backend API: http://localhost:5000
    • API Docs: http://localhost:5000/api-docs

πŸ“š Documentation

πŸ§ͺ Testing

cd backend

# Run all tests with coverage
npm test

# Run tests in watch mode
npm run test:watch

# Run only integration tests
npm run test:integration

# CI-optimized testing
npm run test:ci

πŸ” Security Features

  • βœ… No hardcoded secrets
  • βœ… Input validation with Joi
  • βœ… NoSQL injection protection
  • βœ… XSS attack prevention
  • βœ… Rate limiting per endpoint
  • βœ… Secure HTTP headers (CSP, HSTS)
  • βœ… JWT authentication
  • βœ… Password hashing (bcrypt)
  • βœ… Error sanitization
  • βœ… Security audits in CI/CD

πŸ“ Project Structure

FreelancerFlow/
β”œβ”€β”€ backend/                    # Node.js/Express API
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ config/            # Configuration & setup
β”‚   β”‚   β”œβ”€β”€ controllers/       # Request handlers
β”‚   β”‚   β”œβ”€β”€ middleware/        # Custom middleware
β”‚   β”‚   β”œβ”€β”€ models/            # Mongoose schemas
β”‚   β”‚   β”œβ”€β”€ routes/            # API routes
β”‚   β”‚   β”œβ”€β”€ utils/             # Utilities & helpers
β”‚   β”‚   └── __tests__/         # Test files
β”‚   β”œβ”€β”€ logs/                  # Application logs
β”‚   β”œβ”€β”€ .env.example           # Environment template
β”‚   β”œβ”€β”€ jest.config.json       # Test configuration
β”‚   └── README.md              # Backend docs
β”œβ”€β”€ frontend/                   # React application
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ api/               # API client
β”‚   β”‚   β”œβ”€β”€ components/        # React components
β”‚   β”‚   β”œβ”€β”€ context/           # Context providers
β”‚   β”‚   β”œβ”€β”€ hooks/             # Custom hooks
β”‚   β”‚   β”œβ”€β”€ layouts/           # Layout components
β”‚   β”‚   β”œβ”€β”€ pages/             # Page components
β”‚   β”‚   β”œβ”€β”€ routes/            # Routing config
β”‚   β”‚   └── styles/            # CSS files
β”‚   └── public/                # Static assets
└── .github/
    └── workflows/             # CI/CD pipelines

πŸš€ Deployment

Supported Platforms

  • Heroku - One-click deployment
  • Railway - Modern deployment platform
  • AWS EC2 - Full control deployment
  • DigitalOcean - Droplet deployment
  • Docker - Containerized deployment

See DEPLOYMENT.md for detailed instructions.

πŸ“Š Production Readiness

Category Status Score
Security βœ… 9.5/10
Testing βœ… 9/10
Documentation βœ… 9/10
Code Quality βœ… 9/10
DevOps βœ… 9/10
Overall βœ… 9.5/10

🀝 Contributing

Contributions are welcome! Please follow these steps:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Write tests for your changes
  4. Ensure all tests pass (npm test)
  5. Commit your changes (git commit -m 'Add amazing feature')
  6. Push to the branch (git push origin feature/amazing-feature)
  7. Open a Pull Request

πŸ“„ License

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

πŸ‘¨β€πŸ’» Author

Raj Koli

πŸ™ Acknowledgments

  • Built with modern best practices and enterprise standards
  • Inspired by the needs of freelancers worldwide
  • Thanks to all open-source contributors

πŸ“ž Support


Made with ❀️ for freelancers worldwide

Production-ready β€’ Secure β€’ Tested β€’ Documented

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published