A comprehensive freelance project management system built with React, TypeScript, and Tailwind CSS.
- Project Management: Track and manage multiple projects with detailed information
- Client Management: Maintain a database of clients and their information
- Time Tracking: Built-in time tracking with start/stop functionality
- Invoicing: Generate and manage invoices with line items
- Expense Tracking: Track project-related expenses with receipt management
- Document Management: Store and organize project-related documents
- Milestone Tracking: Set and track project milestones
- Responsive Design: Works seamlessly on desktop and mobile devices
- React 18
- TypeScript
- Tailwind CSS
- Vite
- React Router
- Lucide Icons
- date-fns
- Clone the repository:
git clone https://github.com/yourusername/freelance-pm.git
cd freelance-pm- Install dependencies:
npm install- Start the development server:
npm run dev- Open your browser and navigate to
http://localhost:5173
src/
├── components/ # Reusable UI components
├── pages/ # Page components
├── services/ # Business logic and data services
├── types/ # TypeScript type definitions
└── main.tsx # Application entry point
- Create and manage projects
- Track project status and progress
- Set project budgets and timelines
- Real-time time tracking
- Manual time entry
- Project-based time tracking
- Automatic earnings calculation
- Create professional invoices
- Track payment status
- Generate detailed line items
- Calculate totals automatically
- Track project expenses
- Categorize expenses
- Upload and store receipts
- Generate expense reports
- Store project documents
- Organize by project
- Track document versions
- Support multiple file types
The application uses browser localStorage for data persistence. In a production environment, this should be replaced with a proper backend database.
Ed Bates (TECHBLIP LLC)
Some sections of this code were generated with the assistance of AI tools. These contributions were reviewed and integrated by the project creator(s).
Apache-2.0 License - see the LICENSE file for details

