Punch Clock is a comprehensive time-tracking solution built with Django and Docker, designed for remote teams, freelancers, and businesses of all sizes.
- Time Entry Management: Clock in/out with ease and track working hours
- Holiday & Calendar Integration: Plan and track holidays and time off
- Team Overview: Visualize your team's attendance and productivity
- Administrative Dashboard: Comprehensive tools for managers
- User Profiles: Personalized settings and preferences
- Reporting & Exports: Generate custom reports and export data
- Containerized: Easy deployment with Docker
- Responsive Design: Works on desktop and mobile devices
- Docker and Docker Compose (for containerized setup)
- Python 3.10+ (for local development)
- PostgreSQL (handled by Docker)
- Node.js and npm (for frontend assets)
# Clone the repository
git clone https://github.com/JustMrNone/PunchClock.git
cd PunchClock/ClockingInAndOut
# Start the application
docker-compose up -d
# Run migrations
docker-compose exec web python manage.py migrate
# Create superuser
docker-compose exec web python manage.py createsuperuser
# Access the application at http://localhost:8000# Clone the repository
git clone https://github.com/JustMrNone/PunchClock.git
cd PunchClock/ClockingInAndOut
# Set up Python environment (using Poetry)
poetry install
poetry shell
# Apply migrations
python manage.py migrate
# Create superuser
python manage.py createsuperuser
# Build frontend assets
npm install
npm run build
# Run the development server
python manage.py runserverComprehensive documentation is available to help you get started, understand the architecture, and contribute to Punch Clock.
The documentation is built using MkDocs with the Material theme:
-
Using the convenience scripts (recommended):
# On Windows .\serve-docs.ps1 # On Linux/macOS chmod +x serve-docs.sh ./serve-docs.sh
This will install required packages if needed and start the documentation server on port 8080.
-
Access the documentation by navigating to:
http://localhost:8080/
Documentation includes:
- Setup instructions
- Architecture overview
- Deployment guides
- User guides
- API documentation
- Space-themed Git workflow
# Run tests using Docker
docker-compose exec web python manage.py test
# Run tests locally
python manage.py testSee deployment documentation for detailed instructions on deploying Punch Clock to production environments.
ClockingInAndOut/ # Django project container
├── PunchClock/ # Main application
│ ├── models.py # Data models
│ ├── views.py # View controllers
│ ├── templates/ # HTML templates
│ └── static/ # Static assets
├── docs/ # Documentation
├── docker-compose.yml # Docker configuration
└── Dockerfile # Container definition
We welcome contributions to Punch Clock! Please see our contributing guide for details on our space-themed Git workflow, coding standards, and pull request process.
Punch Clock is open source software licensed under the GNU General Public License v3.0 (GPL-3.0). See the LICENSE for more information.
- Mobile application
- Advanced reporting features
- Integration with payroll systems
- Multi-language support
- Team messaging features
If you encounter any issues or have questions, please create an issue on our GitHub repository.