First off, thank you for considering contributing to X To-Do Corp! It's people like you that make this project better for everyone.
This project and everyone participating in it is governed by our commitment to providing a welcoming and inspiring community for all.
Before creating bug reports, please check the existing issues to avoid duplicates. When you create a bug report, include as many details as possible:
- Use a clear and descriptive title
- Describe the exact steps to reproduce the problem
- Provide specific examples
- Describe the behavior you observed and what you expected
- Include screenshots if possible
- Note your environment (OS, browser, Node version)
Enhancement suggestions are tracked as GitHub issues. When creating an enhancement suggestion:
- Use a clear and descriptive title
- Provide a detailed description of the suggested enhancement
- Explain why this enhancement would be useful
- List any similar features in other applications
- Fork the repo and create your branch from
main - Follow the code style of the project
- Write clear commit messages
- Test your changes thoroughly
- Update documentation as needed
- Submit your pull request
# Clone your fork
git clone https://github.com/your-username/x-to-do-corp.git
# Install dependencies
npm install
# Start development server
npm run dev
# Run type checking
npm run type-check- Use TypeScript for all new files
- Define proper types and interfaces
- Avoid
anytype when possible - Use meaningful variable names
- Use functional components with hooks
- Keep components focused and single-purpose
- Extract reusable logic into custom hooks
- Use proper prop types
src/
├── components/
│ ├── [feature]/
│ │ ├── ComponentName.tsx
│ │ └── index.ts (barrel export)
- Components: PascalCase (e.g.,
TodoItem.tsx) - Hooks: camelCase with 'use' prefix (e.g.,
useAppContext.ts) - Utils: camelCase (e.g.,
textParser.ts) - Types: PascalCase (e.g.,
Todo,UserProfile)
- React and external libraries
- Internal components (using
@/alias) - Types
- Hooks
- Utils and constants
Example:
import React, { useState } from 'react';
import { HiCheck } from 'react-icons/hi';
import { TodoItem } from '@/components/todo';
import { type Todo } from '@/types';
import { useAppContext } from '@/hooks/useAppContext';
import { formatDate } from '@/utils/dateUtils';- Use Tailwind utility classes
- Follow the existing color scheme using CSS variables
- Maintain responsive design (mobile-first)
- Use consistent spacing (Tailwind spacing scale)
Follow the conventional commits specification:
type(scope): subject
body (optional)
footer (optional)
feat: New featurefix: Bug fixdocs: Documentation changesstyle: Code style changes (formatting, etc.)refactor: Code refactoringtest: Adding or updating testschore: Maintenance tasks
feat(todo): add drag and drop for task reordering
fix(calendar): resolve date picker timezone issue
docs(readme): update installation instructions
refactor(components): reorganize folder structure
Before submitting a pull request:
- Test all functionality you've changed
- Test on different screen sizes
- Test in both light and dark mode
- Check for console errors
- Verify TypeScript compilation
- Update README.md if you change functionality
- Add JSDoc comments for complex functions
- Update type definitions as needed
- Include inline comments for complex logic
Feel free to open an issue with the question label if you need help or clarification.
Contributors will be recognized in the project README. Thank you for your contributions!
Happy coding! 🚀