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.
Clean, intuitive dashboard with project and client insights
Complete client management with contact information and project history
Project tracking with progress monitoring and details
Professional invoice generation with Stripe payment integration
Real-time project time tracking with detailed logging
- Real-time project and client overview
- Quick action buttons for common tasks
- Visual progress indicators
- Revenue and time tracking summaries
- Complete client profiles with contact details
- Project history per client
- Client status tracking
- Create and manage projects
- Track project progress and milestones
- Assign projects to clients
- Project status updates
- Start/stop timer for active projects
- Detailed time logs with descriptions
- Project-specific time categorization
- Time reporting and analytics
- Professional invoice generation
- Stripe payment integration
- Invoice status tracking
- PDF invoice download
- Secure user registration and login
- Protected routes and data
- Session management
- 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
- Appwrite - Backend-as-a-Service for database and auth
- Next.js Server Actions - Server-side logic
- Zod - Schema validation
- Stripe - Payment processing and invoice generation
- Recharts - Data visualization for analytics
- ESLint - Code linting and formatting
- Jest - Unit testing setup
- TypeScript - Static type checking
- Node.js 18+ and npm
- Appwrite account and project
- Stripe account for payments
# 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# 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:3000Deployed on Vercel with automatic deployments from the main branch.
# Build for production
npm run build
# Deploy to Vercel
vercel --prod# Run tests
npm test
# Run tests in watch mode
npm run test:watchThis 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
- 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
- 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
Durga Prasad Konduru
- Portfolio: [Durga Prasad] (https://durga-prasad-portfolio1.vercel.app/)
- LinkedIn: @durgaprasad23
- Email: [email protected]
Contributions, issues, and feature requests are welcome!
- Fork the project
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request