Contributing to TimeScribe
January 23, 2026 ยท View on GitHub
Thank you for considering contributing to TimeScribe! This document provides guidelines and instructions to help you contribute effectively to the project.
Table of Contents
- Getting Started
- Development Workflow
- Pull Request Process
- Coding Standards
- Testing
- Translations
- Reporting Bugs
- Feature Requests
- Communication
Getting Started
Development Environment Setup
-
Prerequisites:
- PHP 8.4 or higher
- Composer
- Node.js (LTS version recommended)
- npm
- Git
-
Clone the repository:
git clone https://github.com/WINBIGFOX/timescribe.git cd timescribe -
Install dependencies:
composer install npm install -
Environment setup:
cp .env.example .env php artisan key:generate -
Database configuration and setup: Update the
.envfile with your database credentials.For local development, we use SQLite. Follow the steps below:
touch database/database.sqliteYou need run migrations to set up the database schema:
php artisan migrate
Running the Application
For local development, you can use the following commands:
-
Web development mode:
composer devThis runs the Laravel server, queue worker, log viewer, and Vite development server concurrently.
-
Native app development mode:
composer native:devThis runs the NativePHP/Electron app with hot reloading.
Development Workflow
Branching Strategy
main- Production-ready codedevelop- Development branch for integrating features- Feature branches - Create from
developwith the format:feature/your-feature-name - Bug fix branches - Create from
developwith the format:fix/bug-description
Commit Messages
Write clear, concise commit messages that explain the changes made. Follow this format:
type: Short description (50 chars or less)
More detailed explanation if necessary
Types:
feat: A new featurefix: A bug fixdocs: Documentation changesstyle: Code style changes (formatting, missing semicolons, etc.)refactor: Code changes that neither fix bugs nor add featurestest: Adding or modifying testschore: Changes to the build process or auxiliary tools
Pull Request Process
- Create a branch from
mainfor your changes - Make your changes and commit them with descriptive messages
- Push your branch to your fork
- Submit a pull request to the
mainbranch - Ensure all tests pass and code style checks are successful
- Update documentation if necessary
- Request a review from maintainers
Coding Standards
PHP Code Style and Rector
We follow the Laravel coding standards. Use Laravel Pint for code formatting and Rector for code refactoring.
./vendor/bin/rector
./vendor/bin/pint
TypeScript/Vue Code Style
We use ESLint and Prettier for TypeScript and Vue files:
# Check code style
npm run style
npm run lint
# Fix code style issues
npm run style:fix
npm run lint:fix
# Type checking
npm run typecheck
Translations
TimeScribe supports multiple languages. If you're adding new text strings:
- Add them to the appropriate language files in the
langdirectory - Ensure they're properly translated in all supported languages (English, German, Chinese)
Reporting Bugs
When reporting bugs, please include:
- A clear, descriptive title
- Steps to reproduce the issue
- Expected behavior
- Actual behavior
- Screenshots if applicable
- Your environment (OS, app version, etc.)
Use the GitHub issue tracker to report bugs.
Feature Requests
Feature requests are welcome. Please provide:
- A clear description of the feature
- The problem it solves
- How it benefits users
- Any implementation ideas you have
Communication
- GitHub Issues: For bug reports and feature requests
- Pull Requests: For code contributions
- GitHub Discussions: For general questions and discussions
Thank you for contributing to TimeScribe!