AlgoViz projesine katkıda bulunduğunuz için teşekkürler! Bu rehber size nasıl katkıda bulunabileceğinizi gösterir.
- Fork edin
- Clone edin:
git clone https://github.com/omercsbn/algoviz-platform.git - Dependencies yükleyin:
npm install - Development server başlatın:
npm run dev
- Detaylı açıklama yapın
- Reproduksiyon adımlarını ekleyin
- Beklenen vs gerçek sonuç
- Screenshots/videos ekleyin
- Özelliğin detaylı açıklaması
- Use case'ler
- Mockup/wireframe (varsa)
- Implementation önerileri
- Clean ve readable kod
- TypeScript kullanın
- Comment'ler ekleyin
- Test edin
// Interface'ler PascalCase
interface AlgorithmNode {
id: number
value: number
}
// Function'lar camelCase
const generateArray = () => { }
// Constants UPPER_SNAKE_CASE
const MAX_ARRAY_SIZE = 100// Functional components with TypeScript
export function SortingVisualizer(): JSX.Element {
// State tanımlamaları
const [isRunning, setIsRunning] = useState(false)
// useEffect'ler
useEffect(() => {
// Side effects
}, [])
// Event handlers
const handleStart = () => {
// Handler logic
}
return (
// JSX
)
}- Tailwind CSS kullanın
- Responsive design (
sm:,md:,lg:) - Dark mode support (
dark:) - Consistent spacing
// components/new-algorithm-visualizer.tsx
export function NewAlgorithmVisualizer() {
// Algorithm logic
// Visualization
// Controls
}const newAlgorithm = async () => {
// Algorithm steps
// State updates
// Animations
}- Sidebar'a ekleyin
- Main content'e entegre edin
- Context'i güncelleyin
<Button
onClick={handleAction}
disabled={isRunning}
className="flex items-center gap-2"
>
<Icon className="h-4 w-4" />
Action Text
</Button>{isLoading && (
<div className="flex items-center gap-2">
<Spinner />
<span>Loading...</span>
</div>
)}try {
// Risky operation
} catch (error) {
console.error("Operation failed:", error)
toast.error("User-friendly error message")
}- Tüm algoritmaları test edin
- Farklı parametrelerle test edin
- Edge case'leri kontrol edin
- Mobile/desktop compatibility
- Large datasets ile test edin
- Memory usage kontrol edin
- Animation performance
feature/add-heap-sort
bugfix/fix-merge-sort-animation
improvement/optimize-tree-rendering
docs/update-readmefeat: add heap sort visualization
fix: resolve merge sort key conflicts
docs: update contributing guidelines
style: improve button hover states- What: Ne değişti?
- Why: Neden bu değişiklik gerekli?
- How: Nasıl implement edildi?
- Testing: Nasıl test edildi?
- Screenshots: Görsel değişiklikler varsa
- Clean code practices
- Performance implications
- User experience
- Documentation updates
algoviz-platform/
├── app/ # Next.js app directory
│ ├── globals.css # Global styles
│ ├── layout.tsx # Root layout
│ └── page.tsx # Home page
├── components/ # React components
│ ├── ui/ # Shadcn/ui components
│ ├── *-visualizer.tsx # Algorithm visualizers
│ └── *.tsx # Other components
├── hooks/ # Custom React hooks
├── lib/ # Utility functions
├── public/ # Static assets
└── styles/ # Additional styles
npm run build # Test production build
npm run start # Test production server# .env.local
NEXT_PUBLIC_APP_URL=http://localhost:3000- Issues: Bug reports ve feature requests
- Discussions: Genel sorular ve öneriler
- Pull Requests: Code contributions
- Next.js Documentation
- React Documentation
- TypeScript Documentation
- Tailwind CSS Documentation
- Shadcn/ui Documentation
Her katkınız AlgoViz'i daha iyi hale getirir. Sorularınız varsa issue açmaktan çekinmeyin!
Happy coding! 🚀