Bars used percentage heights, but their flex-column parent has no fixed height, so the browser fell back to the min-height and every bar rendered as the same flat stub. Switch to pixel heights scaled against the tallest month, with a per-bar value label, so bar heights now reflect the data. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> |
||
|---|---|---|
| .github | ||
| client | ||
| data | ||
| server | ||
| .dockerignore | ||
| .gitignore | ||
| build-deploy.sh | ||
| CHANGELOG.md | ||
| CONTAINER_INTERFACE_DEPLOYMENT.md | ||
| DEPLOYMENT_GUIDE.md | ||
| DEPLOYMENT_STATUS.md | ||
| docker-compose.deploy-local.yml | ||
| docker-compose.deploy.yml | ||
| docker-compose.ghcr.yml | ||
| docker-compose.simple.yml | ||
| docker-compose.temp-deploy.yml | ||
| docker-compose.yml | ||
| DOCKER_DEPLOYMENT.md | ||
| Dockerfile | ||
| GITHUB_CONTAINER_REGISTRY.md | ||
| nginx.conf | ||
| nginx.deploy.conf | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| README_NEW.md | ||
| validate-deployment.sh | ||
🎯 Etsy Business Tracker with Advanced Profit Analysis
Status: ✅ LIVE IN PRODUCTION | Last Updated: May 1, 2026
A comprehensive business intelligence platform designed specifically for Etsy sellers to track orders, analyze profit margins, manage expenses, and gain deep insights into business performance with advanced profit analysis capabilities.
🚀 DEPLOYED & READY - Quick Access
Production Deployment Options
- GitHub Container Registry:
docker-compose.deploy.yml- Pre-built images ⚡ Fastest - Local Build:
docker-compose.simple.yml- Auto-building 🔧 Most Reliable - Enhanced Debug:
docker-compose.deploy-local.yml- Full logging 🔍 Best for troubleshooting
🌐 Access URL: http://localhost:8081 (after deployment)
📖 Full Guide: See DEPLOYMENT_GUIDE.md for step-by-step instructions
✨ LIVE FEATURES - Currently Operational
📊 Advanced Profit Analysis Dashboard - ✅ LIVE
- Real-time Profit Tracking: Monitor profit margins across all products and time periods
- Cost Breakdown Analysis: Detailed breakdown of material costs, Etsy fees, shipping expenses
- Order Drill-Down Analysis: Product-specific margins with itemized cost analysis
- Time Range Filtering: Sophisticated date selectors for monthly, quarterly, yearly analysis
- Profit Calculation Engine: Advanced algorithms for accurate margin calculations
🏪 Complete Business Management - ✅ OPERATIONAL
- Order Tracking: Comprehensive order management with real-time status updates
- Product Catalog: Full product database with variants, pricing, inventory tracking
- Customer Management: Complete customer data, purchase history, communication logs
- Expense Management: Categorized business expense tracking with tax preparation
- Financial Reporting: Automated P&L statements and tax-ready financial reports
🔄 Automated Data Processing - ✅ FUNCTIONAL
- CSV Import: Bulk import orders and transactions from Etsy statements
- PDF Processing: Extract data from Etsy payment receipts and statements
- Smart Product Matching: AI-powered matching of imported data to product catalog
- Bulk Operations: Process hundreds of orders and transactions efficiently
🚧 Coming Soon - In Active Development
- Interactive Charts: Chart.js components for visual profit trends and analytics
- Product Performance Analysis: Detailed insights on most/least profitable products
- Revenue Forecasting: Predictive analytics based on historical patterns
- Seasonal Trend Analysis: Understanding business cycles and seasonal patterns
🛠 Tech Stack
Frontend
- React 18 with TypeScript
- Vite for fast development and building
- Tailwind CSS for styling
- Redux Toolkit for state management
- React Router for navigation
- Chart.js for data visualization
- React Hook Form with Zod validation
Backend
- Node.js with Express and TypeScript
- MongoDB with Mongoose ODM
- JWT authentication
- bcryptjs for password hashing
- Helmet for security
- Express Rate Limit for API protection
- Morgan for logging
- Cors for cross-origin requests
📦 Project Structure
etsy-tracker/
├── client/ # React frontend
│ ├── src/
│ │ ├── components/ # Reusable UI components
│ │ ├── pages/ # Page components
│ │ ├── store/ # Redux store and slices
│ │ ├── utils/ # Utility functions
│ │ └── ...
│ ├── public/
│ └── package.json
├── server/ # Node.js backend
│ ├── src/
│ │ ├── controllers/ # Route handlers
│ │ ├── models/ # Database models
│ │ ├── routes/ # API routes
│ │ ├── middleware/ # Custom middleware
│ │ └── index.ts # Server entry point
│ ├── .env.example
│ └── package.json
├── .github/
│ └── copilot-instructions.md
├── package.json # Root package.json
└── README.md
🎯 DEPLOYMENT READY - Multiple Options Available
Option 1: Container Interface Deployment (Recommended)
Perfect for Docker Desktop, Portainer, or similar tools
-
Clone Repository:
git clone https://github.com/dlawler489/etsy-finance-tracker.git cd etsy-finance-tracker -
Choose Your Deployment Method:
docker-compose.simple.yml- ⚡ Best for beginnersdocker-compose.deploy-local.yml- 🔧 Enhanced debuggingdocker-compose.deploy.yml- 🚀 Pre-built images (fastest)
-
Import & Deploy:
- Docker Desktop: Compose tab → Import → Select file → Deploy
- Portainer: Stacks → Add stack → Upload file → Deploy
- Access: http://localhost:8081
Option 2: Command Line Deployment
# Quick deployment with pre-built images
docker-compose -f docker-compose.deploy.yml up
# Local build with enhanced debugging
docker-compose -f docker-compose.simple.yml up --build
Option 3: Development Environment
# For customization and development
npm install
cd client && npm install
cd ../server && npm install
npm run dev # Starts both frontend and backend
📋 Validation: Run ./validate-deployment.sh to check your environment
🏗️ DEVELOPMENT STATUS & ROADMAP
✅ Phase 1 - COMPLETED (April 2026)
- Core profit analysis dashboard with real-time metrics
- Complete business management system (orders, products, customers)
- Advanced data import and processing capabilities
- Comprehensive deployment infrastructure with multiple options
- Production-ready containerization with CI/CD pipeline
🚧 Phase 2 - IN PROGRESS (May 2026)
- Interactive Chart.js components for visual analytics
- Advanced product performance analysis with recommendations
- Enhanced profit trending and forecasting capabilities
📋 Phase 3 - PLANNED (June 2026)
- AI-powered business insights and recommendations
- Advanced seasonal analysis and inventory optimization
- Mobile app companion for on-the-go business monitoring
cd etsy-finance-tracker
-
Install dependencies
cd client && npm install && cd .. cd server && npm install && cd .. -
Set up environment variables (optional)
cd server cp .env.example .env # Edit .env if needed for development
Development
Option 1: Run both servers with Docker (recommended)
./build-deploy.sh local
Option 2: Run development servers separately
npm run dev
Option 2: Run servers separately
Start the backend server:
npm run server:dev
# Server runs on http://localhost:8080
Start the frontend development server:
npm run client:dev
# Client runs on http://localhost:3000 (or next available port)
Building for Production
# Build both client and server
npm run build
# Or build separately
npm run client:build
npm run server:build
Running Tests
npm test
🔧 Configuration
Environment Variables (Server)
Create a .env file in the server directory:
NODE_ENV=development
PORT=8080
CLIENT_URL=http://localhost:3000
MONGODB_URI=mongodb://localhost:27017/etsy-tracker
JWT_SECRET=your-super-secret-jwt-key-change-this-in-production
SESSION_SECRET=your-super-secret-session-key-change-this-in-production
Database Setup
The application uses MongoDB to store:
- Products: Product details, variants, pricing, inventory
- Orders: Order information, customer details, status tracking
- Customers: Customer profiles, purchase history
- Expenses: Business expense records
- Users: Authentication and user management
📊 API Endpoints
Authentication
POST /api/auth/register- User registrationPOST /api/auth/login- User loginPOST /api/auth/logout- User logoutGET /api/auth/me- Get current user
Products
GET /api/products- Get all productsPOST /api/products- Create new productGET /api/products/:id- Get specific productPUT /api/products/:id- Update productDELETE /api/products/:id- Delete product
Orders
GET /api/orders- Get all ordersPOST /api/orders- Create new orderGET /api/orders/:id- Get specific orderPUT /api/orders/:id- Update order status
Customers
GET /api/customers- Get all customersPOST /api/customers- Create new customerGET /api/customers/:id- Get specific customerPUT /api/customers/:id- Update customer
Expenses
GET /api/expenses- Get all expensesPOST /api/expenses- Create new expensePUT /api/expenses/:id- Update expenseDELETE /api/expenses/:id- Delete expense
Analytics
GET /api/analytics/dashboard- Get dashboard metricsGET /api/analytics/sales- Get sales analyticsGET /api/analytics/products- Get product performanceGET /api/analytics/customers- Get customer analytics
🎨 UI/UX
The application features a modern, responsive design built with Tailwind CSS:
- Responsive Design: Works on desktop, tablet, and mobile devices
- Dark/Light Mode: User preference support
- Interactive Charts: Visual analytics and reporting
- Form Validation: Real-time validation with helpful error messages
- Toast Notifications: User feedback for actions
🔒 Security Features
- JWT Authentication: Secure token-based authentication
- Password Hashing: bcrypt for secure password storage
- Rate Limiting: API endpoint protection
- CORS Configuration: Cross-origin request handling
- Input Validation: Server-side validation for all inputs
- Security Headers: Helmet.js for security headers
🚀 Deployment
Using PM2 (Recommended for production)
# Build the application
npm run build
# Install PM2 globally
npm install -g pm2
# Start the server with PM2
cd server
pm2 start dist/index.js --name "etsy-tracker-api"
# Serve the client (using a static file server)
pm2 serve client/dist 3000 --name "etsy-tracker-client"
Using Docker
# Build and run with Docker Compose
docker-compose up --build
🤝 Contributing
- Fork the repository
- Create a feature branch:
git checkout -b feature/new-feature - Commit your changes:
git commit -am 'Add new feature' - Push to the branch:
git push origin feature/new-feature - Submit a pull request
📝 License
This project is licensed under the MIT License - see the LICENSE file for details.
🆘 Troubleshooting
Common Issues
-
Port already in use: If you get an EADDRINUSE error, kill the process using the port:
lsof -ti:8080 | xargs kill -9 -
MongoDB connection issues: Ensure MongoDB is running and the connection string is correct in your
.envfile. -
Build errors: Clear node_modules and reinstall:
rm -rf node_modules client/node_modules server/node_modules npm run install:all
VS Code Integration
This project includes VS Code configuration for:
- Tasks: Pre-configured build and dev tasks
- Debugging: Launch configurations for both client and server
- Extensions: Recommended extensions list
- Settings: Project-specific settings
📞 Support
If you encounter any issues or have questions, please:
- Check the troubleshooting section above
- Search existing issues in the repository
- Create a new issue with detailed information about the problem
Built with ❤️ for Etsy sellers who want to grow their business through better data tracking and analysis.