You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
366 lines
13 KiB
366 lines
13 KiB
# AGENTS.md
|
|
|
|
## Przegląd projektu
|
|
|
|
Data Science for Beginners to kompleksowy, 10-tygodniowy kurs składający się z 20 lekcji, stworzony przez Microsoft Azure Cloud Advocates. Repozytorium jest zasobem edukacyjnym, który uczy podstawowych pojęć z zakresu nauki o danych poprzez lekcje oparte na projektach, w tym notatniki Jupyter, interaktywne quizy i zadania praktyczne.
|
|
|
|
**Kluczowe technologie:**
|
|
- **Notatniki Jupyter**: Główne medium nauki z użyciem Python 3
|
|
- **Biblioteki Python**: pandas, numpy, matplotlib do analizy danych i wizualizacji
|
|
- **Vue.js 2**: Aplikacja quizowa (folder quiz-app)
|
|
- **Docsify**: Generator strony dokumentacji do użytku offline
|
|
- **Node.js/npm**: Zarządzanie pakietami dla komponentów JavaScript
|
|
- **Markdown**: Cała treść lekcji i dokumentacja
|
|
|
|
**Architektura:**
|
|
- Repozytorium edukacyjne w wielu językach z obszernymi tłumaczeniami
|
|
- Struktura podzielona na moduły lekcji (1-Introduction do 6-Data-Science-In-Wild)
|
|
- Każda lekcja zawiera README, notatniki, zadania i quizy
|
|
- Samodzielna aplikacja quizowa Vue.js do oceny przed/po lekcji
|
|
- Wsparcie dla GitHub Codespaces i kontenerów deweloperskich VS Code
|
|
|
|
## Polecenia konfiguracji
|
|
|
|
### Konfiguracja repozytorium
|
|
```bash
|
|
# Clone the repository (if not already cloned)
|
|
git clone https://github.com/microsoft/Data-Science-For-Beginners.git
|
|
cd Data-Science-For-Beginners
|
|
```
|
|
|
|
### Konfiguracja środowiska Python
|
|
```bash
|
|
# Create a virtual environment (recommended)
|
|
python -m venv venv
|
|
source venv/bin/activate # On Windows: venv\Scripts\activate
|
|
|
|
# Install common data science libraries (no requirements.txt exists)
|
|
pip install jupyter pandas numpy matplotlib seaborn scikit-learn
|
|
```
|
|
|
|
### Konfiguracja aplikacji quizowej
|
|
```bash
|
|
# Navigate to quiz app
|
|
cd quiz-app
|
|
|
|
# Install dependencies
|
|
npm install
|
|
|
|
# Start development server
|
|
npm run serve
|
|
|
|
# Build for production
|
|
npm run build
|
|
|
|
# Lint and fix files
|
|
npm run lint
|
|
```
|
|
|
|
### Serwer dokumentacji Docsify
|
|
```bash
|
|
# Install Docsify globally
|
|
npm install -g docsify-cli
|
|
|
|
# Serve documentation locally
|
|
docsify serve
|
|
|
|
# Documentation will be available at localhost:3000
|
|
```
|
|
|
|
### Konfiguracja projektów wizualizacyjnych
|
|
Dla projektów wizualizacyjnych, takich jak meaningful-visualizations (lekcja 13):
|
|
```bash
|
|
# Navigate to starter or solution folder
|
|
cd 3-Data-Visualization/13-meaningful-visualizations/starter
|
|
|
|
# Install dependencies
|
|
npm install
|
|
|
|
# Start development server
|
|
npm run serve
|
|
|
|
# Build for production
|
|
npm run build
|
|
|
|
# Lint files
|
|
npm run lint
|
|
```
|
|
|
|
|
|
## Przebieg pracy deweloperskiej
|
|
|
|
### Praca z notatnikami Jupyter
|
|
1. Uruchom Jupyter w katalogu głównym repozytorium: `jupyter notebook`
|
|
2. Przejdź do odpowiedniego folderu lekcji
|
|
3. Otwórz pliki `.ipynb`, aby przejść przez ćwiczenia
|
|
4. Notatniki są samodzielne, zawierają wyjaśnienia i komórki kodu
|
|
5. Większość notatników używa pandas, numpy i matplotlib - upewnij się, że są zainstalowane
|
|
|
|
### Struktura lekcji
|
|
Każda lekcja zazwyczaj zawiera:
|
|
- `README.md` - Główna treść lekcji z teorią i przykładami
|
|
- `notebook.ipynb` - Ćwiczenia praktyczne w notatniku Jupyter
|
|
- `assignment.ipynb` lub `assignment.md` - Zadania praktyczne
|
|
- Folder `solution/` - Notatniki z rozwiązaniami i kod
|
|
- Folder `images/` - Materiały wizualne wspierające
|
|
|
|
### Rozwój aplikacji quizowej
|
|
- Aplikacja Vue.js 2 z funkcją hot-reload podczas rozwoju
|
|
- Quizy przechowywane w `quiz-app/src/assets/translations/`
|
|
- Każdy język ma własny folder tłumaczeń (en, fr, es, itd.)
|
|
- Numeracja quizów zaczyna się od 0 i kończy na 39 (łącznie 40 quizów)
|
|
|
|
### Dodawanie tłumaczeń
|
|
- Tłumaczenia umieszczane w folderze `translations/` w katalogu głównym repozytorium
|
|
- Każdy język ma pełną strukturę lekcji odzwierciedloną z angielskiego
|
|
- Automatyczne tłumaczenie za pomocą GitHub Actions (co-op-translator.yml)
|
|
|
|
## Instrukcje testowania
|
|
|
|
### Testowanie aplikacji quizowej
|
|
```bash
|
|
cd quiz-app
|
|
|
|
# Run lint checks
|
|
npm run lint
|
|
|
|
# Test build process
|
|
npm run build
|
|
|
|
# Manual testing: Start dev server and verify quiz functionality
|
|
npm run serve
|
|
```
|
|
|
|
### Testowanie notatników
|
|
- Nie istnieje automatyczny framework testowy dla notatników
|
|
- Walidacja ręczna: Uruchom wszystkie komórki w kolejności, aby upewnić się, że nie ma błędów
|
|
- Sprawdź dostępność plików danych i poprawność generowanych wyników
|
|
- Upewnij się, że wizualizacje renderują się poprawnie
|
|
|
|
### Testowanie dokumentacji
|
|
```bash
|
|
# Verify Docsify renders correctly
|
|
docsify serve
|
|
|
|
# Check for broken links manually by navigating through content
|
|
# Verify all lesson links work in the rendered documentation
|
|
```
|
|
|
|
### Kontrola jakości kodu
|
|
```bash
|
|
# Vue.js projects (quiz-app and visualization projects)
|
|
cd quiz-app # or visualization project folder
|
|
npm run lint
|
|
|
|
# Python notebooks - manual verification recommended
|
|
# Ensure imports work and cells execute without errors
|
|
```
|
|
|
|
|
|
## Wytyczne dotyczące stylu kodu
|
|
|
|
### Python (Notatniki Jupyter)
|
|
- Przestrzegaj wytycznych stylu PEP 8 dla kodu Python
|
|
- Używaj jasnych nazw zmiennych, które opisują analizowane dane
|
|
- Dodawaj komórki markdown z wyjaśnieniami przed komórkami kodu
|
|
- Skup komórki kodu na pojedynczych koncepcjach lub operacjach
|
|
- Używaj pandas do manipulacji danymi, matplotlib do wizualizacji
|
|
- Typowy wzorzec importu:
|
|
```python
|
|
import pandas as pd
|
|
import numpy as np
|
|
import matplotlib.pyplot as plt
|
|
```
|
|
|
|
|
|
### JavaScript/Vue.js
|
|
- Przestrzegaj wytycznych stylu Vue.js 2 i najlepszych praktyk
|
|
- Konfiguracja ESLint w `quiz-app/package.json`
|
|
- Używaj komponentów Vue w pojedynczych plikach (.vue)
|
|
- Utrzymuj architekturę opartą na komponentach
|
|
- Uruchom `npm run lint` przed zatwierdzeniem zmian
|
|
|
|
### Dokumentacja Markdown
|
|
- Używaj jasnej hierarchii nagłówków (# ## ### itd.)
|
|
- Dodawaj bloki kodu ze specyfikatorami języka
|
|
- Dodawaj tekst alternatywny dla obrazów
|
|
- Linkuj do powiązanych lekcji i zasobów
|
|
- Zachowaj rozsądną długość linii dla czytelności
|
|
|
|
### Organizacja plików
|
|
- Treść lekcji w ponumerowanych folderach (01-defining-data-science, itd.)
|
|
- Rozwiązania w dedykowanych podfolderach `solution/`
|
|
- Tłumaczenia odzwierciedlają strukturę angielską w folderze `translations/`
|
|
- Pliki danych w folderze `data/` lub specyficznych dla lekcji
|
|
|
|
## Budowa i wdrożenie
|
|
|
|
### Wdrożenie aplikacji quizowej
|
|
```bash
|
|
cd quiz-app
|
|
|
|
# Build production version
|
|
npm run build
|
|
|
|
# Output is in dist/ folder
|
|
# Deploy dist/ folder to static hosting (Azure Static Web Apps, Netlify, etc.)
|
|
```
|
|
|
|
### Wdrożenie Azure Static Web Apps
|
|
Aplikacja quizowa może być wdrożona na Azure Static Web Apps:
|
|
1. Utwórz zasób Azure Static Web App
|
|
2. Połącz z repozytorium GitHub
|
|
3. Skonfiguruj ustawienia budowy:
|
|
- Lokalizacja aplikacji: `quiz-app`
|
|
- Lokalizacja wynikowa: `dist`
|
|
4. Workflow GitHub Actions automatycznie wdroży zmiany po ich przesłaniu
|
|
|
|
### Strona dokumentacji
|
|
```bash
|
|
# Build PDF from Docsify (optional)
|
|
npm run convert
|
|
|
|
# Docsify documentation is served directly from markdown files
|
|
# No build step required for deployment
|
|
# Deploy repository to static hosting with Docsify
|
|
```
|
|
|
|
### GitHub Codespaces
|
|
- Repozytorium zawiera konfigurację kontenera deweloperskiego
|
|
- Codespaces automatycznie konfiguruje środowisko Python i Node.js
|
|
- Otwórz repozytorium w Codespace za pomocą interfejsu GitHub
|
|
- Wszystkie zależności instalują się automatycznie
|
|
|
|
## Wytyczne dotyczące pull requestów
|
|
|
|
### Przed przesłaniem
|
|
```bash
|
|
# For Vue.js changes in quiz-app
|
|
cd quiz-app
|
|
npm run lint
|
|
npm run build
|
|
|
|
# Test changes locally
|
|
npm run serve
|
|
```
|
|
|
|
### Format tytułu PR
|
|
- Używaj jasnych, opisowych tytułów
|
|
- Format: `[Komponent] Krótki opis`
|
|
- Przykłady:
|
|
- `[Lekcja 7] Napraw błąd importu w notatniku Python`
|
|
- `[Aplikacja Quizowa] Dodaj tłumaczenie na niemiecki`
|
|
- `[Dokumentacja] Zaktualizuj README o nowe wymagania wstępne`
|
|
|
|
### Wymagane kontrole
|
|
- Upewnij się, że cały kod działa bez błędów
|
|
- Zweryfikuj, że notatniki wykonują się w całości
|
|
- Potwierdź, że aplikacje Vue.js budują się poprawnie
|
|
- Sprawdź, czy linki w dokumentacji działają
|
|
- Przetestuj aplikację quizową, jeśli została zmodyfikowana
|
|
- Zweryfikuj, że tłumaczenia zachowują spójną strukturę
|
|
|
|
### Wytyczne dotyczące wkładu
|
|
- Przestrzegaj istniejącego stylu kodu i wzorców
|
|
- Dodawaj wyjaśniające komentarze dla złożonej logiki
|
|
- Aktualizuj odpowiednią dokumentację
|
|
- Testuj zmiany w różnych modułach lekcji, jeśli to możliwe
|
|
- Przejrzyj plik CONTRIBUTING.md
|
|
|
|
## Dodatkowe uwagi
|
|
|
|
### Często używane biblioteki
|
|
- **pandas**: Manipulacja i analiza danych
|
|
- **numpy**: Obliczenia numeryczne
|
|
- **matplotlib**: Wizualizacja danych i wykresy
|
|
- **seaborn**: Wizualizacja danych statystycznych (niektóre lekcje)
|
|
- **scikit-learn**: Uczenie maszynowe (lekcje zaawansowane)
|
|
|
|
### Praca z plikami danych
|
|
- Pliki danych znajdują się w folderze `data/` lub w katalogach specyficznych dla lekcji
|
|
- Większość notatników oczekuje plików danych w ścieżkach względnych
|
|
- Pliki CSV są głównym formatem danych
|
|
- Niektóre lekcje używają JSON dla przykładów danych nierelacyjnych
|
|
|
|
### Wsparcie wielojęzyczne
|
|
- Ponad 40 tłumaczeń językowych za pomocą automatycznych GitHub Actions
|
|
- Workflow tłumaczeń w `.github/workflows/co-op-translator.yml`
|
|
- Tłumaczenia w folderze `translations/` z kodami języków
|
|
- Tłumaczenia quizów w `quiz-app/src/assets/translations/`
|
|
|
|
### Opcje środowiska deweloperskiego
|
|
1. **Rozwój lokalny**: Zainstaluj Python, Jupyter, Node.js lokalnie
|
|
2. **GitHub Codespaces**: Środowisko rozwoju w chmurze
|
|
3. **Kontenery deweloperskie VS Code**: Lokalny rozwój oparty na kontenerach
|
|
4. **Binder**: Uruchamianie notatników w chmurze (jeśli skonfigurowane)
|
|
|
|
### Wytyczne dotyczące treści lekcji
|
|
- Każda lekcja jest samodzielna, ale buduje na poprzednich koncepcjach
|
|
- Quizy przed lekcją sprawdzają wcześniejszą wiedzę
|
|
- Quizy po lekcji wzmacniają naukę
|
|
- Zadania zapewniają praktykę
|
|
- Sketchnotes oferują wizualne podsumowania
|
|
|
|
### Rozwiązywanie typowych problemów
|
|
|
|
**Problemy z Jupyter Kernel:**
|
|
```bash
|
|
# Ensure correct kernel is installed
|
|
python -m ipykernel install --user --name=datascience
|
|
```
|
|
|
|
**Problemy z instalacją npm:**
|
|
```bash
|
|
# Clear npm cache and retry
|
|
npm cache clean --force
|
|
rm -rf node_modules package-lock.json
|
|
npm install
|
|
```
|
|
|
|
**Błędy importu w notatnikach:**
|
|
- Upewnij się, że wszystkie wymagane biblioteki są zainstalowane
|
|
- Sprawdź zgodność wersji Python (zalecany Python 3.7+)
|
|
- Upewnij się, że środowisko wirtualne jest aktywowane
|
|
|
|
**Docsify nie ładuje się:**
|
|
- Upewnij się, że serwujesz z katalogu głównego repozytorium
|
|
- Sprawdź, czy istnieje plik `index.html`
|
|
- Upewnij się, że masz odpowiedni dostęp do sieci (port 3000)
|
|
|
|
### Uwagi dotyczące wydajności
|
|
- Duże zestawy danych mogą długo się ładować w notatnikach
|
|
- Renderowanie wizualizacji może być wolne dla złożonych wykresów
|
|
- Serwer deweloperski Vue.js umożliwia szybkie iteracje dzięki hot-reload
|
|
- Kompilacje produkcyjne są zoptymalizowane i zminimalizowane
|
|
|
|
### Uwagi dotyczące bezpieczeństwa
|
|
- Nie należy przesyłać danych wrażliwych ani poświadczeń
|
|
- Używaj zmiennych środowiskowych dla kluczy API w lekcjach chmurowych
|
|
- Lekcje związane z Azure mogą wymagać poświadczeń konta Azure
|
|
- Aktualizuj zależności dla poprawek bezpieczeństwa
|
|
|
|
## Wkład w tłumaczenia
|
|
- Automatyczne tłumaczenia zarządzane za pomocą GitHub Actions
|
|
- Mile widziane ręczne poprawki dla dokładności tłumaczeń
|
|
- Przestrzegaj istniejącej struktury folderów tłumaczeń
|
|
- Aktualizuj linki do quizów, aby zawierały parametr języka: `?loc=fr`
|
|
- Testuj przetłumaczone lekcje pod kątem poprawnego renderowania
|
|
|
|
## Powiązane zasoby
|
|
- Główna ścieżka nauczania: https://aka.ms/datascience-beginners
|
|
- Microsoft Learn: https://docs.microsoft.com/learn/
|
|
- Student Hub: https://docs.microsoft.com/learn/student-hub
|
|
- Forum dyskusyjne: https://github.com/microsoft/Data-Science-For-Beginners/discussions
|
|
- Inne kursy Microsoft: ML for Beginners, AI for Beginners, Web Dev for Beginners
|
|
|
|
## Utrzymanie projektu
|
|
- Regularne aktualizacje, aby treść była aktualna
|
|
- Mile widziane wkłady społeczności
|
|
- Problemy śledzone na GitHub
|
|
- PR-y przeglądane przez opiekunów programu nauczania
|
|
- Miesięczne przeglądy i aktualizacje treści
|
|
|
|
---
|
|
|
|
**Zastrzeżenie**:
|
|
Ten dokument został przetłumaczony za pomocą usługi tłumaczenia AI [Co-op Translator](https://github.com/Azure/co-op-translator). Chociaż staramy się zapewnić dokładność, prosimy pamiętać, że automatyczne tłumaczenia mogą zawierać błędy lub nieścisłości. Oryginalny dokument w jego rodzimym języku powinien być uznawany za źródło autorytatywne. W przypadku informacji krytycznych zaleca się skorzystanie z profesjonalnego tłumaczenia przez człowieka. Nie ponosimy odpowiedzialności za jakiekolwiek nieporozumienia lub błędne interpretacje wynikające z użycia tego tłumaczenia. |