Thank you for considering contributing to TimeScribe! This document provides guidelines and instructions to help you contribute effectively to the project.
- Getting Started
- Development Workflow
- Pull Request Process
- Coding Standards
- Testing
- Translations
- Reporting Bugs
- Feature Requests
- Communication
-
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.sqlite
You need run migrations to set up the database schema:
php artisan migrate
For local development, you can use the following commands:
-
Web development mode:
composer dev
This runs the Laravel server, queue worker, log viewer, and Vite development server concurrently.
-
Native app development mode:
composer native:dev
This runs the NativePHP/Electron app with hot reloading.
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
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
- 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
We follow the Laravel coding standards. Use Laravel Pint for code formatting and Rector for code refactoring.
./vendor/bin/rector
./vendor/bin/pintWe 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 typecheckTimeScribe 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)
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 are welcome. Please provide:
- A clear description of the feature
- The problem it solves
- How it benefits users
- Any implementation ideas you have
- 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!