Professional time tracking application with modern UI/UX, real-time analytics, and enterprise-grade features. Built for Feys Media demonstration.
| Landing | Projects & Tasks | Time Tracking |
|---|---|---|
![]() |
![]() |
| Dashboard & Reports | About Trackify |
|---|---|
![]() |
![]() |
- โฑ๏ธ Real-Time Timer - Precision time tracking with live updates
- ๐ Advanced Dashboard - Comprehensive analytics and reporting
- ๐ Project Management - Unlimited projects and task organization
- ๐ Manual Time Entry - Flexible time logging with date/time controls
- ๐ฏ Smart Filtering - Daily, weekly, monthly, yearly, and custom date ranges
- ๐ Dark/Light Theme - Professional theme switching with smooth transitions
- ๐ฑ Responsive Design - Perfect on desktop, tablet, and mobile devices
- โก Loading Animations - Beautiful animated loading screen with progress indicators
- โจ Modern Interface - Elegant gradients, shadows, and micro-interactions
- ๐ญ Button Effects - Premium hover effects with shine animations
- ๐๏ธ RESTful API - Complete PHP backend with CRUD operations
- ๐ Secure Database - MySQL with proper relationships and indexing
- ๐ Performance Optimized - Fast loading and smooth animations
- ๐ง Modular Architecture - Clean, maintainable code structure
| Component | Technology | Version |
|---|---|---|
| Frontend | Vanilla JavaScript | ES6+ |
| Styling | Modern CSS3 | Latest |
| Backend | PHP | 8.0+ |
| Database | MySQL | 8.0+ |
| Architecture | RESTful API | - |
Diagrams use a dark theme for clarity. Rendered by GitHub from Mermaid.
%%{init: {'theme':'dark', 'themeVariables': { 'primaryColor':'#1e293b','primaryTextColor':'#f1f5f9','primaryBorderColor':'#475569','lineColor':'#64748b','secondaryColor':'#0f172a','tertiaryColor':'#334155'}}}%%
flowchart LR
subgraph Entry[" "]
A[๐ Landing]
end
subgraph Setup[" "]
B[๐ Select Project]
C[๐ Select Task]
end
subgraph Track[" "]
D[โฑ๏ธ Start Timer]
E[๐ Manual Entry]
end
subgraph Report[" "]
F[๐ Dashboard & Reports]
end
A --> B --> C --> D --> F
C --> E --> F
D --> F
%%{init: {'theme':'dark', 'themeVariables': { 'primaryColor':'#1e293b','primaryTextColor':'#f1f5f9','primaryBorderColor':'#475569','lineColor':'#64748b','secondaryColor':'#0f172a','tertiaryColor':'#334155'}}}%%
flowchart TB
subgraph Client["Frontend"]
UI[HTML / CSS / JS]
UI --> |fetch| API
end
subgraph Server["Backend"]
API[REST API<br/>PHP]
API --> P[projects.php]
API --> T[tasks.php]
API --> TE[time_entries.php]
API --> R[report.php]
end
subgraph Data["Data Layer"]
DB[(MySQL)]
end
P --> DB
T --> DB
TE --> DB
R --> DB
%%{init: {'theme':'dark', 'themeVariables': { 'primaryColor':'#1e293b','primaryTextColor':'#f1f5f9','primaryBorderColor':'#475569','lineColor':'#64748b','secondaryColor':'#0f172a','tertiaryColor':'#334155'}}}%%
erDiagram
PROJECTS ||--o{ TASKS : "has"
PROJECTS ||--o{ TIME_ENTRIES : "tracks"
TASKS ||--o{ TIME_ENTRIES : "tracks"
PROJECTS {
int id PK
string name
datetime created_at
}
TASKS {
int id PK
int project_id FK
string name
datetime created_at
}
TIME_ENTRIES {
int id PK
int project_id FK
int task_id FK
datetime start_time
datetime end_time
int duration
datetime created_at
}
%%{init: {'theme':'dark', 'themeVariables': { 'primaryColor':'#1e293b','primaryTextColor':'#f1f5f9','primaryBorderColor':'#475569','lineColor':'#64748b','secondaryColor':'#0f172a','tertiaryColor':'#334155'}}}%%
sequenceDiagram
participant U as User / Browser
participant F as Frontend (app.js)
participant A as API (PHP)
participant D as MySQL
U->>F: Create project / Start timer / Filter report
F->>A: GET/POST /api/projects.php, tasks.php, time_entries.php, report.php
A->>D: Prepared SQL
D-->>A: Result set
A-->>F: JSON response
F-->>U: Update UI / Show message
Trackify/
โ
โโโ ๐ index.html # Main application entry point
โโโ ๐๏ธ database.sql # Complete database setup & sample data
โโโ ๐ check_database.php # Database verification utility
โโโ โ๏ธ setup_database.bat # Windows automated setup script
โโโ ๐ README.md # Comprehensive documentation (this file)
โโโ ๐ SETUP_GUIDE.md # Quick setup instructions
โโโ ๐ธ *.png # Screenshots (landing, dashboard, etc.)
โ
โโโ ๐จ css/
โ โโโ style.css # Complete styling system with themes
โ
โโโ โก js/
โ โโโ app.js # TrackifyApp class with full functionality
โ
โโโ ๐ง api/ # PHP REST API Backend
โ โโโ db.php # Database connection & configuration
โ โโโ config.example.php # Example config (copy to config.php)
โ โโโ projects.php # Project CRUD operations
โ โโโ tasks.php # Task management
โ โโโ time_entries.php # Time tracking operations
โ โโโ report.php # Dashboard analytics & filtering
โ โโโ export_to_json.php # Export DB to data/*.json
โ
โโโ ๐ผ๏ธ assets/images/ # Application assets
โโโ trackify-favicon.png # Favicon
โโโ trackify.png # Main logo/hero image
- PHP 8.0+ with MySQL extension
- MySQL 8.0+ or MariaDB
- Web Server (Apache/Nginx) or PHP built-in server
1. Clone & Setup Database
# Import complete database setup
mysql -u root -p < database.sql2. Start Application
# Using PHP built-in server
php -S localhost:8000
# Open in browser
open http://localhost:80003. Ready to Use! ๐
- Real-Time Timer: Start/stop functionality with live display (HH:MM:SS)
- Manual Entry: Flexible time logging with start/end times or duration
- Smart Validation: Prevents invalid time entries and overlaps
- Auto-Save: Immediate database persistence
- Unlimited Projects: Create and organize multiple projects
- Task Hierarchies: Associate tasks with specific projects
- Dynamic Loading: Real-time updates without page refresh
- Data Relationships: Proper foreign key constraints and cascading
- Multiple Time Periods:
- ๐ Today's activity
- ๐ This week's summary
- ๐ Monthly reports
- ๐ Yearly overview
- ๐ Custom date ranges
- Real-Time Filtering: Instant results without page reload
- Total Hours Display: Automatic calculation and formatting
- Detailed Tables: Project, task, start/end times, and duration
- Theme System: Professional dark/light mode with persistence
- Loading Screen: Animated clock with progress indicators and floating elements
- Button Effects: Enhanced hover states with:
- Lift animations (
translateY) - Scale effects (
scale) - Shine animations (diagonal sweep)
- Color transitions
- Shadow enhancements
- Lift animations (
- Responsive Grid: Adaptive layouts for all screen sizes
// GET - Fetch all projects
GET /api/projects.php
// POST - Create new project
POST /api/projects.php
Content-Type: application/json
{ "name": "Project Name" }
// PUT - Update project
PUT /api/projects.php
{ "id": 1, "name": "Updated Name" }
// DELETE - Remove project
DELETE /api/projects.php
{ "id": 1 }// GET - Fetch tasks by project
GET /api/tasks.php?project_id=1
// POST - Create new task
POST /api/tasks.php
{ "project_id": 1, "name": "Task Name" }// GET - Fetch time entries with filters
GET /api/time_entries.php?project_id=1&from=2025-01-01&to=2025-01-31
// POST - Create time entry
POST /api/time_entries.php
{
"project_id": 1,
"task_id": 1,
"start_time": "2025-01-15 09:00:00",
"end_time": "2025-01-15 17:00:00",
"duration": 28800
}-- Projects: Store project information
projects (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(255) NOT NULL,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
)
-- Tasks: Project-associated tasks
tasks (
id INT PRIMARY KEY AUTO_INCREMENT,
project_id INT FOREIGN KEY REFERENCES projects(id),
name VARCHAR(255) NOT NULL,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
)
-- Time Entries: Time tracking records
time_entries (
id INT PRIMARY KEY AUTO_INCREMENT,
project_id INT FOREIGN KEY REFERENCES projects(id),
task_id INT FOREIGN KEY REFERENCES tasks(id),
start_time DATETIME NOT NULL,
end_time DATETIME,
duration INT, -- seconds
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
)Credentials are not hardcoded. Use one of:
- Config file โ Copy
api/config.example.phptoapi/config.phpand set your MySQL credentials. - Environment variables โ
TRACKIFY_DB_HOST,TRACKIFY_DB_NAME,TRACKIFY_DB_USER,TRACKIFY_DB_PASS.
Example (do not commit real passwords to the repo):
// api/config.php (copy from config.example.php)
return [
'host' => 'localhost',
'db' => 'trackify',
'user' => 'root',
'pass' => 'your_mysql_password_here',
];The application features a sophisticated theme system:
- Light Theme: Clean, professional appearance with subtle gradients
- Dark Theme: Modern dark interface with enhanced contrast
- Smooth Transitions: 0.15s cubic-bezier animations
- Persistent Settings: Theme choice saved in localStorage
- Component Coverage: All UI elements adapt seamlessly
- Desktop: 1024px and above (full feature layout)
- Tablet: 768px - 1023px (optimized spacing)
- Mobile: 320px - 767px (stacked layout, touch-friendly)
- Larger touch targets (buttons, inputs)
- Simplified navigation
- Optimized font sizes
- Adjusted spacing and padding
- Fast Loading: Optimized assets and minimal dependencies
- Efficient Animations: GPU-accelerated CSS transforms
- Smart Loading: Progressive content loading
- Database Optimization: Indexed queries and efficient joins
- Memory Management: Proper cleanup of timers and events
- Database Health Check:
check_database.phputility - Error Handling: Comprehensive try-catch blocks
- Validation: Client and server-side input validation
- SQL Injection Protection: Prepared statements throughout
- XSS Prevention: Proper data sanitization
This project demonstrates:
- Modern JavaScript ES6+ features
- Advanced CSS animations and transitions
- Responsive design principles
- Event handling and DOM manipulation
- Local storage management
- RESTful API design
- PHP 8+ features and best practices
- Database design and optimization
- Security considerations
- Error handling and logging
- Frontend-backend communication
- Data flow architecture
- Real-time updates
- State management
- Clean Architecture: Modular, maintainable code structure
- Consistent Naming: Clear, descriptive variable and function names
- Documentation: Comprehensive comments and documentation
- Error Handling: Robust error management throughout
- API-First Design: Clean separation of concerns
- Progressive Enhancement: Works without JavaScript (basic functionality)
- Accessibility: Semantic HTML and keyboard navigation
- Performance: Optimized loading and smooth animations
- Freelancers tracking client work
- Agencies managing multiple projects
- Teams monitoring productivity
- Personal productivity analysis
- Project billing and invoicing
- Resource allocation planning
- Performance analytics
- Time-based reporting
- SQL Injection Protection: Parameterized queries
- XSS Prevention: Input sanitization
- CSRF Protection: Proper form handling
- Input Validation: Client and server-side checks
- Error Handling: Secure error messages
- User Authentication: Multi-user support with roles
- Export Functionality: PDF/CSV report generation
- Time Goals: Project-based time targets
- Notifications: Browser notifications for reminders
- API Integration: Third-party service connections
- Mobile App: Native iOS/Android applications
Developed for: Feys Media
Purpose: Technical demonstration of full-stack development capabilities
Year: 2025
License: MIT
โ
Enterprise-Grade UI/UX - Professional design with premium animations
โ
Complete Full-Stack Solution - Frontend, backend, and database
โ
Modern Technology Stack - Latest web development practices
โ
Responsive Design - Perfect on all devices
โ
Performance Optimized - Fast loading and smooth interactions
For technical questions or demonstration requests:
Project: Trackify Time Tracking Solution
Client: Feys Media
Status: โ
Production Ready
Built with โค๏ธ and attention to detail. Showcasing modern web development excellence.




