https://github.com/durga1534/freelance_flow
A Full-Stack Freelancer Website to work on projects with time tracking, clients list, invoices with live time tracking feature as well. Build using Next.js 15 with TypeScript
https://github.com/durga1534/freelance_flow
appwrite expressjs nextjs nodejs react-hook-form shadcn stripe tailewindcss typescript
Last synced: 2 months ago
JSON representation
A Full-Stack Freelancer Website to work on projects with time tracking, clients list, invoices with live time tracking feature as well. Build using Next.js 15 with TypeScript
- Host: GitHub
- URL: https://github.com/durga1534/freelance_flow
- Owner: Durga1534
- Created: 2025-06-25T05:22:20.000Z (12 months ago)
- Default Branch: master
- Last Pushed: 2025-06-26T04:59:55.000Z (12 months ago)
- Last Synced: 2025-06-26T05:31:31.673Z (12 months ago)
- Topics: appwrite, expressjs, nextjs, nodejs, react-hook-form, shadcn, stripe, tailewindcss, typescript
- Language: TypeScript
- Homepage:
- Size: 135 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# ๐ FreelanceFlow
**Modern Client Management Platform for Freelancers**
A full-stack web application built to demonstrate modern web development skills while solving real freelance business challenges. Features client management, project tracking, time logging, and invoice generation with Stripe integration.
[](https://freelance-flow-xi.vercel.app/)
[](https://github.com/Durga1534/Freelance_Flow)

## ๐ธ Screenshots
### Dashboard Overview

*Clean, intuitive dashboard with project and client insights*
### Client Management

*Complete client management with contact information and project history*
### Project Management

*Project tracking with progress monitoring and details*
### Invoice Generation

*Professional invoice generation with Stripe payment integration*
### Time Tracking

*Real-time project time tracking with detailed logging*
## โจ Features
### ๐ **Dashboard**
- Real-time project and client overview
- Quick action buttons for common tasks
- Visual progress indicators
- Revenue and time tracking summaries
### ๐ฅ **Client Management**
- Complete client profiles with contact details
- Project history per client
- Client status tracking
### ๐ **Project Management**
- Create and manage projects
- Track project progress and milestones
- Assign projects to clients
- Project status updates
### โฑ๏ธ **Time Tracking**
- Start/stop timer for active projects
- Detailed time logs with descriptions
- Project-specific time categorization
- Time reporting and analytics
### ๐ฐ **Invoice System**
- Professional invoice generation
- Stripe payment integration
- Invoice status tracking
- PDF invoice download
### ๐ **Authentication**
- Secure user registration and login
- Protected routes and data
- Session management
## ๐ ๏ธ Technology Stack
### **Frontend**
- **Next.js 15** - React framework with App Router
- **TypeScript** - Type-safe development
- **Tailwind CSS** - Utility-first styling
- **Shadcn/UI** - Modern React component library
- **React Hook Form** - Form management and validation
### **Backend & Database**
- **Appwrite** - Backend-as-a-Service for database and auth
- **Next.js Server Actions** - Server-side logic
- **Zod** - Schema validation
### **Integrations**
- **Stripe** - Payment processing and invoice generation
- **Recharts** - Data visualization for analytics
### **Development Tools**
- **ESLint** - Code linting and formatting
- **Jest** - Unit testing setup
- **TypeScript** - Static type checking
## ๐ Getting Started
### Prerequisites
- Node.js 18+ and npm
- Appwrite account and project
- Stripe account for payments
## ๐ Docs
- [๐ Auth Flow](docs/auth-flow.md)
### Installation
```bash
# Clone the repository
git clone https://github.com/Durga1534/Freelance_Flow.git
cd Freelance_Flow
# Install dependencies
npm install
# Set up environment variables
cp .env.example .env.local
# Add your Appwrite and Stripe credentials
# Run development server
npm run dev
# Visit http://localhost:3000
```
### Environment Variables
```env
# Appwrite Configuration
NEXT_PUBLIC_APPWRITE_ENDPOINT=your_appwrite_endpoint
NEXT_PUBLIC_APPWRITE_PROJECT_ID=your_project_id
APPWRITE_API_KEY=your_api_key
# Stripe Configuration
NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY=your_stripe_public_key
STRIPE_SECRET_KEY=your_stripe_secret_key
# Application URL
NEXT_PUBLIC_APP_URL=http://localhost:3000
```
## ๐ฆ Deployment
Deployed on Vercel with automatic deployments from the main branch.
```bash
# Build for production
npm run build
# Deploy to Vercel
vercel --prod
```
## ๐งช Testing
```bash
# Run tests
npm test
# Run tests in watch mode
npm run test:watch
```
## ๐ฏ Project Goals
This project was built to:
- Demonstrate full-stack development skills using modern technologies
- Solve real freelance business management challenges
- Practice integrating third-party services (Stripe, Appwrite)
- Build a production-ready application with proper authentication
- Showcase TypeScript and modern React patterns
## ๐ก Key Learning Outcomes
- **Full-stack Development**: Built complete frontend and backend functionality
- **Payment Integration**: Implemented Stripe for invoice processing
- **Database Design**: Structured relational data with Appwrite
- **Authentication**: Secure user management and protected routes
- **TypeScript**: Type-safe development throughout the application
- **Modern React**: Hooks, Server Components, and state management
- **UI/UX Design**: Responsive design with Tailwind CSS and Shadcn/UI
## ๐ง Technical Challenges Solved
- Implementing real-time time tracking with start/stop functionality
- Integrating Stripe payment processing with invoice generation
- Building responsive dashboard with multiple data visualizations
- Managing complex state between clients, projects, and time entries
- Securing API routes and implementing proper authentication flows
## ๐จโ๐ป Author
**Durga Prasad Konduru**
- Portfolio: [Durga Prasad] (https://durga-prasad-portfolio1.vercel.app/)
- LinkedIn: [@durgaprasad23](https://www.linkedin.com/in/durgaprasad23)
- Email: kondurudurgaprasad.2@gmail.com
## ๐ค Contributing
Contributions, issues, and feature requests are welcome!
1. Fork the project
2. Create your feature branch (`git checkout -b feature/amazing-feature`)
3. Commit your changes (`git commit -m 'Add some amazing feature'`)
4. Push to the branch (`git push origin feature/amazing-feature`)
5. Open a Pull Request
Built with โค๏ธ to learn and grow as a developer