ã¯ããã«
Pythonãç¬åŠã§åŠç¿äžã®çŸåœ¹ãã©ãã¯ãã©ã€ããŒã§ãã
ç©æµçŸå Žã§èº«ã«ã€ãããç©ã¿æ®ããåºããªãããåºè·åã«ç¹æ€ããããšããèãæ¹ãã
Webã¢ããªã±ãŒã·ã§ã³éçºã«ãåãå
¥ããŠããŸãã
PythonåŠç¿éå§ãã69æ¥ç®ã环èš148æéã
ä»åã¯ãããŒã«ãªãŒåã売äžç®¡çã¢ã㪠sales_data_app ã«æ°æ©èœã远å ããã®ã§ã¯ãªãã
ãªããžããªå
šäœã®æŽçã»ç¹æ€ã»äžèŠã³ãŒãåé€ã«5æéã䜿ããŸããã
察象ã«ããã®ã¯ãã³ãŒãã ãã§ã¯ãããŸããã
- README
- ã¹ã¯ãªãŒã³ã·ã§ãã
- ãã¢åç»
- ãµã ãã€ã«
.gitignore.dockerignore- æ§ExcelåŠç
- æªäœ¿çšimport
- äžèŠã«ãªã£ãäŸåé¢ä¿
- æªäœ¿çšCSS
- å€ãç»é¢æèš
- Gitç«¶åèšå·
- pytest
- GitHubãšã®åæç¶æ
ã¢ããªèªäœã¯åããŠããŸããã
ããããã¢ããªãåããŠããããšãšããªããžããªå šäœãçŸåšã®ä»æ§ãšäžèŽããŠããããšã¯å¥ã§ãã
éçºãéããã»ã©ãéå»ã®ä»æ§ãå€ãç»åãäžèŠã«ãªã£ãèšå®ã䜿ãããªããªã£ãCSSãªã©ãå°ããã€æ®ããŸãã
ç©æµã§äŸãããªããé éã¯æ£åžžã«å®äºããŠãããã®ã®ãè·å°ã®é ã«å€ãè³æãäŒç¥šãæ®ã£ãŠããç¶æ ã§ãã
ããã§ä»åã¯ãæ°ããè·ç©ãç©ãåã«ãè·å°ãäžåºŠç·ç¹æ€ããŸããã
ãã®èšäºã§äŒãããã®ã¯ãåãªããã¡ã€ã«æŽçã®æé ã§ã¯ãããŸããã
åããŠããã¢ããªã§ããã³ãŒãã»äŸåé¢ä¿ã»ç»é¢ã»èª¬æè³æã»Dockerã»Gitã®ç¶æ ããçŸåšã®ä»æ§ãšäžèŽããŠãããšã¯éããªã
ãšããããšã§ãã
ãã®èšäºã§åããããš
ãã®èšäºã§ã¯ã次ã®å å®¹ãæ±ããŸãã
- Flaskãªããžããªå šäœãç¹æ€ããèãæ¹
- åé€åè£ãå®å šã«ç¢ºèªããé åº
-
.gitignoreãš.dockerignoreã®åœ¹å²ã®éã - æªäœ¿çšimportã»äŸåé¢ä¿ã»CSSã®æ¢ãæ¹
-
grepã§çµæãåºãªãã£ãå Žåã®èãæ¹ - Gitç«¶åèšå·ã®æ€çŽ¢ã§èª€æ€åºããçç±
- ç®çã®ç°ãªã倿Žãæ··ããªãã³ããã倿
-
pytestãšworking tree cleanãŸã§ç¢ºèªããçç± - å¥ã®ãããžã§ã¯ãã§ã䜿ããç·ç¹æ€ãã§ãã¯ãªã¹ã
ãã®èšäºã¯é·ãã§ãã
æåããé çªã«èªãã»ããæ°ã«ãªãèŠåºãã ãèªãäœ¿ãæ¹ãã
èšäºåŸåã®ããªããžããªç·ç¹æ€ãã§ãã¯ãªã¹ãããå®äœæ¥ã§äœ¿ãããšãæ³å®ããŠããŸãã
察象ã¢ããª
sales_data_appã¯ãããŒã«ãªãŒã®ååç»é²ãæ¥æ¬¡å£²äžå
¥åã売äžåæãGemini APIã«ããçµå¶ã¢ããã€ã¹ããŸãšããWebã¢ããªã±ãŒã·ã§ã³ã§ãã
äž»ãªæè¡æ§æã¯æ¬¡ã®ãšããã§ãã
Python 3.12
Flask
PostgreSQL
SQLAlchemy
Flask-Migrate / Alembic
Docker / Docker Compose
Gunicorn
Render
pytest
GitHub Actions
Gemini API
ã¢ããªã§ã¯ã次ã®ãããªæ¥åãããŒãæ±ã£ãŠããŸãã
ååã¡ãã¥ãŒãšäŸ¡æ Œãç»é²ãã
â
æ¬æ¥ã®è²©å£²åæ°ãå
¥åã»æŽæ°ãã
â
売äžã©ã³ãã³ã°ãšã°ã©ãã確èªãã
â
Geminiããçµå¶ã¢ããã€ã¹ãåãã
ä»åã®ç·ç¹æ€ãã5ã€ã®å±€ãã§èãã
ä»åã®äœæ¥ãæ¯ãè¿ããšããªããžããªã®ç¹æ€å¯Ÿè±¡ã¯å€§ãã5ã€ã®å±€ã«åããããŸããã
â å®è¡ã³ãŒã
æªäœ¿çšimportãæ§åŠçãå€ãèšå®ãæªäœ¿çšCSS
â¡ äŸåé¢ä¿
requirements.txtã«æ®ã£ãŠããäžèŠãªã©ã€ãã©ãª
⢠UIã»èª¬æè³æ
HTMLã®æèšãREADMEãã¹ã¯ãªãŒã³ã·ã§ããããã¢çŽ æ
⣠é
éç¯å²
.gitignoreã.dockerignore
†åºè·ç¶æ
pytestãgit diffãgit statusãGitHubãšã®åæ
ãã®5å±€ã«åãããšãåã«ãäžèŠãã¡ã€ã«ãæ¢ãããããç¹æ€ç¯å²ãæç¢ºã«ãªããŸãã
ãªããžããªã®ç·ç¹æ€ãšã¯ãäžèŠãã¡ã€ã«ãæ¶ãã ãã®äœæ¥ã§ã¯ãããŸããã
çŸåšã®ä»æ§ãšãã³ãŒãã»äŸåé¢ä¿ã»ç»é¢ã»èª¬æè³æã»åºè·ç¶æ ãäžèŽãããäœæ¥
ã ãšèããŠããŸãã
ä»åè¡ã£ãäœæ¥
5æéã§è¡ã£ãäž»ãªäœæ¥ã¯æ¬¡ã®ãšããã§ãã
- ãã¢åç»ã»ãµã ãã€ã«ã»ã¹ã¯ãªãŒã³ã·ã§ããã®æŽç
- READMEå ã®ç»åãã¹ä¿®æ£
- ææ°ç»é¢ã®ã¹ã¯ãªãŒã³ã·ã§ããæ®åœ±
-
.gitignoreã®æŽç -
.dockerignoreã®æŽç - æ§ExcelåŠçã®åé€
- æªäœ¿çšimportã®åé€
-
openpyxläŸåé¢ä¿ã®åé€ - æªäœ¿çšCSSã®åé€
- å€ãç»é¢ã¿ã€ãã«ã®ä¿®æ£
- æ§ä»æ§ã®æ®åæ€çŽ¢
- Gitç«¶åèšå·ã®æ€çŽ¢
- 倿Žç®çããšã®ã³ããã
- pytestå®è¡
- GitHubãšã®åæç¢ºèª
- 2ã€ã®READMEãžã®å®çžŸåæ
ãããããå®éã«è¡ã£ãé çªã§èšé²ããŸãã
1. ç»åãšåç»ãçšéå¥ã«æŽçãã
æåã«ããªããžããªå ã®ãã¢çŽ æãæŽçããŸããã
æŽçåŸã®æ§æã¯æ¬¡ã®ãšããã§ãã
sales_data_app/
âââ demo_mp4/
âââ demo_thumbnail/
âââ screenshot/
âââ static/
âââ templates/
âââ README.md
çšéãæç¢ºã«åããŸããã
demo_mp4/
âââ ãã¢åç»
demo_thumbnail/
âââ YouTubeçšãµã ãã€ã«
screenshot/
âââ READMEæ²èŒçšã¹ã¯ãªãŒã³ã·ã§ãã
以åã¯ãåç»ãç»åãã«ãŒãçŽäžãªã©è€æ°ã®å Žæã«æ··åšããŠããŸããã
ã¢ããªã®åäœã«ã¯çŽæ¥åœ±é¿ããŸããã
ãããã第äžè ããªããžããªãèŠããšãã«ã次ã®å€æãé£ãããªããŸãã
ãã®ç»åã¯äœã«äœ¿ãã®ã
çŸåšãå¿
èŠãªãã¡ã€ã«ãªã®ã
ã¢ããªã®å®è¡ã«å¿
èŠãªã®ã
説æçšã®è³æãªã®ã
ãã©ã«ãåãšé çœ®ãæŽçããããšã§ããã¡ã€ã«ãéããªããŠã圹å²ãæšæž¬ãããããªããŸãã
ãã©ã«ãæŽçã¯ãåãªãèŠãç®ã®åé¡ã§ã¯ãããŸããã
ãã¡ã€ã«ã®åœ¹å²ãååãšé
眮ã§äŒããã
ãªããžããªå
ã®æ
å ±èšèšã§ããããŸãã
ãã¡ã€ã«ç§»ååŸã¯READMEã®ãã¹ãä¿®æ£ãã
ãã¡ã€ã«ãå¥ãã©ã«ããžç§»åãããšãREADMEå ã®åç §å ãå€ãããŸãã
ããšãã°ãã¹ã¯ãªãŒã³ã·ã§ãããscreenshotãã©ã«ããžç§»ããå Žåã¯ãREADMEåŽãçŸåšã®é
眮ã«åãããŸãã

ãã¡ã€ã«æŽçã ãè¡ããREADMEã®ãã¹ãä¿®æ£ãå¿ãããšãGitHubäžã§ç»åã衚瀺ãããªããªããŸãã
ãã®ãããä»åã¯æ¬¡ã®é çªã§ç¢ºèªããŸããã
ãã¡ã€ã«ãç§»åãã
â
READMEå
ã®åç
§å
ãä¿®æ£ãã
â
GitHubäžã§ç»åã衚瀺ãããã確èªãã
2. READMEãšææ°ç»é¢ãäžèŽããã
READMEã«æ²èŒããŠããã¹ã¯ãªãŒã³ã·ã§ããã®äžéšã¯ãçŸåšã®ç»é¢ãšäžèŽããŠããŸããã§ããã
ãã®ãããææ°çãèµ·åããŠç»é¢ãæ®åœ±ãçŽããŸããã
æŽæ°ããäž»ãªç»é¢ã¯æ¬¡ã®ãšããã§ãã
- ååãã¹ã¿ç»é²ç»é¢
- ã¡ãã¥ãŒç»é²å®äºç»é¢
- æ¥æ¬¡å£²äžå ¥åç»é¢
- 売äžåæããã·ã¥ããŒã
READMEã®ã¹ã¯ãªãŒã³ã·ã§ããã¯ãåãªã食ãã§ã¯ãããŸããã
第äžè ããªããžããªãéãããšããã³ãŒãããå ã«ç»é¢ç»åãèŠãå ŽåããããŸãã
ç»åãå€ããŸãŸã ãšãçŸåšã¯æ¹åæžã¿ã®UIã§ãã£ãŠããå€ãç¶æ ã®ã¢ããªãšããŠäŒãã£ãŠããŸããŸãã
HTMLå ã«æ®ã£ãŠããå€ãã¿ã€ãã«
ç»é¢ã確èªããäžã§ãHTMLå ã«å€ãã¿ã€ãã«ãæ®ã£ãŠããããšãåãããŸããã
ä¿®æ£åã¯æ¬¡ã®è¡šçŸã§ããã
<title>売äžéèšå®äº</title>
ããããçŸåšã®ç»é¢ã®åœ¹å²ã¯å£²äžéèšã§ã¯ãªããååã¡ãã¥ãŒã®ç»é²å®äºã§ãã
ããã§ã次ã®ããã«ä¿®æ£ããŸããã
<title>ã¡ãã¥ãŒç»é²å®äº</title>
ãã©ãŠã¶ã®ã¿ãã«è¡šç€ºãããtitleããå©çšè
ãžäŒãã仿§ã®äžéšã§ãã
ç»é¢å ã®èŠåºãã ãçŽããŠããã¿ãã®ã¿ã€ãã«ãå€ããã°ãåŠçå 容ãšè¡šç€ºãäžèŽããŸããã
ã¢ããªãæ£åžžã«åäœããŠããŠããå€ãæèšãæ®ã£ãŠããã°ãå©çšè ãã³ãŒããèªã人ã«èª€è§£ãäžããå¯èœæ§ããããŸãã
UIã®æèšããã³ãŒããšåãããã«çŸåšã®ä»æ§ãžåãããå¿ èŠããããŸãã
3. .gitignoreãçŸåšã®éçºç°å¢ãžåããã
次ã«ãGitã§è¿œè·¡ããå¿ èŠããªããã¡ã€ã«ãèŠçŽããŸããã
æŽçåŸã®.gitignoreã¯æ¬¡ã®ããã«ãªããŸããã
# Pythonç³»
.venv/
__pycache__/
*.pyc
.pytest_cache/
# çŸå Žã®çããŒã¿ã»æ©å¯ãã¡ã€ã«
éå»å£²äžé«/
*.xlsx
*.db
.env
# ãã®ä»äžèŠãã¡ã€ã«
*.bak
sales_data_app_android_demo.mp4
ä»®æ³ç°å¢ã»ãã£ãã·ã¥ã远跡ããªã
.venv/
__pycache__/
*.pyc
.pytest_cache/
ãããã¯éçºç°å¢ããšã«çæãããŸãã
GitHubãžç»é²ããªããŠããå¿ èŠã«å¿ããŠåç°å¢ã§åçæã§ããŸãã
æ©å¯æ å ±ã远跡ããªã
.env
.envã«ã¯Gemini APIããŒãªã©ã®æ©å¯æ
å ±ãå«ãŸããå¯èœæ§ããããŸãã
å ¬éãªããžããªãžèª€ã£ãŠpushããªããããæç€ºçã«é€å€ããŸãã
ããŒã«ã«ããŒã¿ã远跡ããªã
*.db
*.xlsx
éå»å£²äžé«/
æ¬çªç°å¢ã§ã¯PostgreSQLã䜿çšããŠããŸãã
ããŒã«ã«éçºçšã®SQLiteãã¡ã€ã«ããéå»ã®Excelè³æãGitHubãžå«ããå¿ èŠã¯ãããŸããã
ãã ããããã§æ³šæãããã®ã¯ã
å€ãããªãã¡ã€ã«
=
ããåé€ããŠãããã¡ã€ã«
ã§ã¯ãªãããšã§ãã
ä»åãlocal.dbã«ã€ããŠã¯ãèšå®ãã¡ã€ã«ããåç
§ãããŠããããšã確èªããŸããã
ãã®ããããªããžããªãã远跡ããªã察象ã«ã¯ããŸããããããŒã«ã«ç°å¢ããããç©çåé€ãã倿ã¯ããŠããŸããã
4. .dockerignoreã§æ¬çªãžç©ãè·ç©ã決ãã
Gitã§è¿œè·¡ããªããã¡ã€ã«ãšãDockerã®ãã«ã察象ãžéããªããã¡ã€ã«ã¯ãç®çãç°ãªããŸãã
ãã®ããã.dockerignoreãå¥ã«æŽçããŸããã
# Git
.git
.gitignore
# ç°å¢å€æ°ã»ä»®æ³ç°å¢
.env
.venv/
venv/
# Pythonã»ãã¹ããã£ãã·ã¥
__pycache__/
*.pyc
.pytest_cache/
# ããŒã«ã«ããŒã¿ã»æ§è³æ
*.db
*.xlsx
éå»å£²äžé«/
*.bak
# éçºã»èª¬æçšãã¡ã€ã«
README.md
test_prompts.py
demo_mp4/
demo_thumbnail/
screenshot/
# OSã»ãã°
*.log
.DS_Store
READMEãã¹ã¯ãªãŒã³ã·ã§ããããã¢åç»ããã¹ããã¡ã€ã«ã¯ãGitHubäžã§ã¯æå³ããããŸãã
ããããä»åã®æ¬çªå®è¡çšDockerã€ã¡ãŒãžã«ã¯äžèŠã§ãã
.gitignoreãš.dockerignoreã¯ç®çãç°ãªããŸãã
-
.gitignore
Gitã§è¿œè·¡ããªããã¡ã€ã«ã決ãã -
.dockerignore
Dockerã®ãã«ã察象ãžéããªããã¡ã€ã«ã決ãã
ç©æµã§äŸãããªããæ¬¡ã®éãã§ãã
å庫ã«ä¿ç®¡ããŠããè³æ
â
é
éè»ãžç©ã¿èŸŒãè·ç©
GitHubã«ã¯ãéçºèšé²ã説æè³æãæ®ã䟡å€ããããŸãã
äžæ¹ãDockerã«ã¯ã¢ããªã®å®è¡ã«å¿ èŠãªãã¡ã€ã«ã ããç©ã¿ãŸãã
GitHubãžæ®ãããDockerãžç©ããã2ã€ã®è³ªåã§å€æãã
ãã¡ã€ã«ãåé¡ãããšãã¯ã次ã®2ã€ãèãããšåããããããªããŸãã
â GitHubãžæ®ã䟡å€ãããã
â¡ æ¬çªå®è¡æã«å¿
èŠã
| ãã¡ã€ã« | GitHub | Docker | çç± |
|---|---|---|---|
| ã¢ããªæ¬äœ | å¿ èŠ | å¿ èŠ | å®è¡ã«å¿ èŠ |
| HTMLã»CSS | å¿ èŠ | å¿ èŠ | ç»é¢è¡šç€ºã«å¿ èŠ |
| README | å¿ èŠ | äžèŠ | 説æè³æ |
| ã¹ã¯ãªãŒã³ã·ã§ãã | å¿ èŠ | äžèŠ | GitHubäžã®èª¬æçš |
| ãã¢åç» | å¿ èŠ | äžèŠ | å®è¡ã«ã¯äžèŠ |
| ãã¹ããã¡ã€ã« | å¿ èŠ | ä»åã¯äžèŠ | CIã»éçºçš |
.env |
äžèŠ | äžèŠ | æ©å¯æ å ± |
.venv |
äžèŠ | äžèŠ | ç°å¢ããšã«åçæ |
| SQLiteãã¡ã€ã« | äžèŠ | äžèŠ | ããŒã«ã«ããŒã¿ |
ãã®åé¡ãªããåã«èšå®äŸãã³ããŒããã®ã§ã¯ãªããèªåã®ãããžã§ã¯ãã«åãããŠå€æã§ããŸãã
5. æ§ExcelåŠçã®æ®éªžãæ¢ã
ãã®ã¢ããªã¯ãéçºåæã«Excelãå©çšããŠããŸããã
ãã®åŸãPostgreSQLäžå¿ã®æ§æãžç§»è¡ããŸããããæ§ä»æ§ã®äžéšãæ®ã£ãŠããŸããã
ä»åèŠã€ãã£ãäž»ãªãã®ã¯æ¬¡ã®ãšããã§ãã
config.pyã«æ®ã£ãŠããæ§ãã©ã«ãèšå®
PAST_FOLDER_NAME = "éå»å£²äžé«"
PAST_FOLDER = os.path.join(BASE_DIR, PAST_FOLDER_NAME)
app.pyã«æ®ã£ãŠãããã©ã«ãäœæåŠç
os.makedirs(config.PAST_FOLDER, exist_ok=True)
æªäœ¿çšã«ãªã£ãŠããimport
from flask import send_file
from google.genai import types
äžèŠã«ãªã£ãäŸåé¢ä¿
openpyxl
çŸåšã®ã¢ããªã§ã¯ã売äžããŒã¿ãPostgreSQLãžä¿åããŠããŸãã
Excelãã¡ã€ã«ãçæã»éä¿¡ããåŠçã¯äœ¿ã£ãŠããŸããã
ããã§ãåç §ç®æã確èªããããã§åé€ããŸããã
6. åé€åè£ãèŠã€ããŠããããåé€ããªã
ä»åã®ç¹æ€ã§éèŠã ã£ãã®ã¯ãå€ãããªã³ãŒããèŠã€ããç¬éã«åé€ããªãã£ãããšã§ãã
åé€åè£ã¯ã次ã®é çªã§ç¢ºèªããŸããã
ååã§æ€çŽ¢ãã
â
ã©ãããåç
§ãããŠããã確èªãã
â
çŸåšã®ä»æ§ã§å¿
èŠã確èªãã
â
åé€ãã
â
åãååã§ããäžåºŠæ€çŽ¢ãã
â
ãã¹ããã
ããšãã°ãopenpyxlãšããæååãèŠã€ããå Žåã§ããrequirements.txtããããæ¶ãã®ã§ã¯ãªããã³ãŒãå
ã§æ¬åœã«äœ¿ãããŠããªãã確èªããŸãã
åæ§ã«ãèšå®åãCSSã¯ã©ã¹ããå®çŸ©ã ãã§ãªãåç §åŽãæ¢ããŸãã
ãå€ãããã䜿ã£ãŠããªãããããšããæèŠã ãã§åé€ãããšãå¥ãã¡ã€ã«ããåç §ãããŠããåŠçãå£ãå¯èœæ§ããããŸãã
åé€åãšåé€åŸã®æ€çŽ¢ã1ã»ããã«ãããšãå®å šæ§ãäžããããŸãã
7. 倿Žçµæã¯23è¡åé€ã2è¡ä¿®æ£
æ§ExcelåŠçãæªäœ¿çšimportãäžèŠäŸåé¢ä¿ãæªäœ¿çšCSSãå€ãç»é¢ã¿ã€ãã«ãæŽçããçµæãå·®åã¯æ¬¡ã®ããã«ãªããŸããã
app.py | 10 +---------
config.py | 4 ----
requirements.txt | 1 -
static/style.css | 8 --------
templates/success.html | 2 +-
5 files changed, 2 insertions(+), 23 deletions(-)
ä»åã¯ãæ°ããã³ãŒãã倧éã«è¿œå ããããã§ã¯ãããŸããã
çŸåšã®ä»æ§ã§ã¯äžèŠã«ãªã£ã23è¡ãåé€ããŸããã
ã³ãŒãéãå¢ããããšã ããéçºã§ã¯ãããŸããã
çŸåšäœ¿ãããŠããªãåŠçããæ ¹æ ãæã£ãŠæžããããšãæ¹åã§ãã
ã³ãŒããå°ãªããªãã°å¿ ãè¯ãããã§ã¯ãããŸããã
ããããäžèŠãªã³ãŒããæžãããšã§ã次ã®å¹æãæåŸ ã§ããŸãã
- çŸåšã®åŠçãçè§£ãããããªã
- æ§ä»æ§ã誀ã£ãŠåå©çšããå¯èœæ§ãæžã
- äŸåé¢ä¿ã®åœ¹å²ãæç¢ºã«ãªã
- å°æ¥ã®ä¿®æ£å¯Ÿè±¡ãæžã
- READMEãšå®è£ ã®äžäžèŽãé²ãããããªã
8. æªäœ¿çšCSSãæ€çŽ¢ããŠåé€ãã
HTMLãJavaScriptãã䜿ãããŠããªãCSSãæ®ã£ãŠããªãããgrepã§ç¢ºèªããŸããã
grep -Rni "ai-loading" \
templates \
static \
app.py
æåã®æ€çŽ¢ã§ã¯ãCSSãã¡ã€ã«å ã®å®çŸ©ã ããèŠã€ãããŸããã
static/style.css:680:.input-page .ai-loading {
ãã³ãã¬ãŒããJavaScriptããã¯äœ¿çšãããŠããŸããã§ããã
ãã®ãããã»ã¬ã¯ã¿åã ãã§ã¯ãªããCSSãããã¯å šäœãåé€ããŸããã
.input-page .ai-loading {
/* æªäœ¿çšã ã£ãã¹ã¿ã€ã« */
}
åé€åŸãåãæ€çŽ¢ãããäžåºŠå®è¡ããŸããã
grep -Rni "ai-loading" \
templates \
static \
app.py
çµæã¯0ä»¶ã§ããã
äœã衚瀺ãããªã
åæ§ã«ãçŸåšã®ããã·ã¥ããŒãã§ã¯äœ¿ãããŠããªãå€ã.btn-backã®ã¹ã¿ã€ã«ãåé€ããŸããã
CSSã¯å®çŸ©ã ãèŠã€ãã£ãŠãã䜿çšäžãšã¯éããªã
CSSã¯ã©ã¹ããã¡ã€ã«å ã«ååšããããšãšãç»é¢ããå®éã«äœ¿ãããŠããããšã¯å¥ã§ãã
確èªãããšãã¯ã次ã®äž¡æ¹ãèŠãŸãã
CSSåŽã«å®çŸ©ãããã
HTMLã»JavaScriptåŽããåç
§ãããŠããã
CSSå®çŸ©ã ããæ®ããã©ããããåç §ãããŠããªãå Žåã¯ãåé€åè£ã«ãªããŸãã
ãã ããJavaScriptã§åçã«ä»äžãããã¯ã©ã¹ããããããHTMLã ããèŠãŠå€æããªãããæ³šæãå¿ èŠã§ãã
9. grepã®èµ€ãããã¯ãå¿
ãããç°åžžã§ã¯ãªãã£ã
å€ãæèšãã¯ã©ã¹åãæ€çŽ¢ãããšãããçµæã¯äœã衚瀺ãããŸããã§ããã
ããããã¿ãŒããã«ã«ã¯èµ€ãããã衚瀺ãããŸããã
æåã¯ãã³ãã³ãã倱æããã®ã§ã¯ãªãããšæããŸããã
調ã¹ããšãgrepã®çµäºã¹ããŒã¿ã¹ã¯æ¬¡ã®æå³ãæã¡ãŸãã
0: äžèŽããè¡ãèŠã€ãã£ã
1: äžèŽããè¡ãèŠã€ãããªãã£ã
2以äž: ã³ãã³ãèªäœã®ãšã©ãŒ
ä»åã¯ãæ¢ããŠããå€ãèšè¿°ãèŠã€ãããªãã£ããããçµäºã³ãŒã1ã«ãªã£ãŠããŸããã
ã€ãŸããä»åã®ç®çã§ã¯æåŸ ããçµæã§ãã
äžèŽãªã
=
æ§ä»æ§ã®æ®éªžãªã
ã¿ãŒããã«ã®èšå·ãè²ã ãã§æåã»å€±æã倿ããã
ã³ãã³ãã®çµäºã³ãŒããäœãæå³ããŠããã確èªããå¿
èŠããããŸãã
æ€çŽ¢çµæ0ä»¶ãç«æŽŸãªç¢ºèªçµæ
æ€çŽ¢ã¯ãåé¡ãèŠã€ããããã ãã«äœ¿ããã®ã§ã¯ãããŸããã
ãååšããªãããšãã確èªããããã«ã䜿ããŸãã
ããšãã°ãåé€åŸã«åãååãæ€çŽ¢ãã0ä»¶ã«ãªãã°ã
åé€å¯Ÿè±¡ã®ååãæ®ã£ãŠããªã
ããšã確èªã§ããŸãã
ãã®å Žåãäœã衚瀺ãããªãããšèªäœãçµæã§ãã
ãããŸã§ã«ç»å Žããã³ãã³ããããã¹ãŠæèšããå¿ èŠã¯ãããŸããã
倧åãªã®ã¯ã
- äœãæ¢ãããã®ã³ãã³ããªã®ã
- çµæãåºãå Žåãšåºãªãã£ãå Žåãã©ã倿ããã®ã
- å¿ èŠãªãšãã«å±¥æŽãèšäºããåå©çšã§ããããš
ã§ãã
次ã«ç»å Žããæ£èŠè¡šçŸãã现ããèšå·ããã¹ãŠæèšããã®ã§ã¯ãªãã
ä»åã¯ãGitã®ç«¶åèšå·ã ããè¡åäœã§æ¢ãæ¡ä»¶ããšèããã°å€§äžå€«ã§ãã
10. Gitç«¶åèšå·ã®æ€çŽ¢ã§CSSã倧鿀åºãã
次ã«ãGitã®ç«¶åèšå·ãæ®ã£ãŠããªãã確èªããŸããã
Gitã§ç«¶åãçºçãããšããã¡ã€ã«å ã«æ¬¡ã®ãããªèšå·ãå ¥ãããšããããŸãã
<<<<<<< HEAD
çŸåšã®å
容
=======
å¥ã®å€æŽå
容
>>>>>>> branch-name
æåã«å®è¡ããæ€çŽ¢ã¯æ¬¡ã®ãšããã§ãã
grep -RniE \
'<<<<<<<|=======|>>>>>>>' \
--exclude-dir=.git \
--exclude-dir=.venv \
--exclude-dir=__pycache__ \
--exclude-dir=.pytest_cache \
.
ãããšãstatic/style.cssã®åºåãã³ã¡ã³ãã倧éã«æ€åºããŸããã
/* ========================================
èŠåºã
======================================== */
æ€çŽ¢æ¡ä»¶ã®=======ããCSSã®è£
食çšã€ã³ãŒã«ã«ãäžèŽããããã§ãã
è¡é ãžéå®ããŠãããŸã 誀æ€åºãã
次ã«ãè¡é ãžéå®ããŸããã
grep -RniE \
'^(<<<<<<< |=======|>>>>>>> )' \
--exclude-dir=.git \
--exclude-dir=.venv \
--exclude-dir=__pycache__ \
--exclude-dir=.pytest_cache \
.
ããããCSSã®åºåãç·ãã€ã³ãŒã«ããå§ãŸã£ãŠããŸããã
ãã®ããããŸã 倧éã«æ€åºãããŸããã
Gitç«¶åèšå·ã®åœ¢åŒã ããžçµã
æçµçã«ãè¡é ãšè¡æ«ãå«ããGitç«¶åèšå·ã®åœ¢åŒã ããžæ¡ä»¶ãçµããŸããã
grep -RniE \
'^(<<<<<<< .+|=======$|>>>>>>> .+)$' \
--exclude-dir=.git \
--exclude-dir=.venv \
--exclude-dir=__pycache__ \
--exclude-dir=.pytest_cache \
.
çµæã¯0ä»¶ã§ããã
äœã衚瀺ãããªã
ããã§ãGitç«¶åèšå·ãæ®ã£ãŠããªãããšã確èªã§ããŸããã
æ€çŽ¢çµæãå€ããããšãã£ãŠãåé¡ãå€ããšã¯éããªã
ä»åã®çµéšãããæ¬¡ã®ããšãåãããŸããã
æ€çŽ¢çµæãå€ã
=
åé¡ãå€ã
ãšã¯éããŸããã
æ€çŽ¢æ¡ä»¶ãåºããããšãæ£åžžãªã³ãŒããã³ã¡ã³ããŸã§æŸããŸãã
ä»åã®å Žåã¯ã
Gitç«¶åèšå·ãæ¢ããã
â
=======ãå«ãè¡ãæ€çŽ¢
â
CSSã®è£
食çšã€ã³ãŒã«ã«ãäžèŽ
ãšããç¶æ ã§ããã
æ€çŽ¢çµæãèŠãåã«ã
ãã®æ€çŽ¢æ¡ä»¶ã¯ãåé¡ä»¥å€ã®äœã«äžèŽããå¯èœæ§ãããã
ãèããå¿ èŠããããŸãã
11. æ€çŽ¢ã³ãã³ãã¯ãçºèŠãããã仮説æ€èšŒãã«äœ¿ã
ä»åã®grepã¯ãåã«ãã¡ã€ã«å
ã®æåãæ¢ãããã ãã«äœ¿ã£ãããã§ã¯ãããŸããã
次ã®ãããªä»®èª¬ã確èªããããã«äœ¿ããŸããã
æ§ExcelåŠçããŸã æ®ã£ãŠããã®ã§ã¯ãªãã
æªäœ¿çšCSSãæ®ã£ãŠããã®ã§ã¯ãªãã
å€ãç»é¢æèšãæ®ã£ãŠããã®ã§ã¯ãªãã
Gitç«¶åèšå·ãæ®ã£ãŠããã®ã§ã¯ãªãã
æ€çŽ¢çµæãèŠãŠãå¿ èŠã«å¿ããŠæ¡ä»¶ãä¿®æ£ããŸãã
仮説ãç«ãŠã
â
æ€çŽ¢ãã
â
çµæã確èªãã
â
誀æ€åºãæ¬åœã®åé¡ã倿ãã
â
æ€çŽ¢æ¡ä»¶ãŸãã¯ã³ãŒããä¿®æ£ãã
â
åæ€çŽ¢ãã
ãã®æµããªããæ€çŽ¢ã³ãã³ããæèšããããšããããäœã確ããããããäžå¿ã«ãªããŸãã
12. é¢é£ãã倿Žã¯ãŸãšããå¥ç®çãæ··ããåã«ã³ããããã
ä»å倿Žãããã¡ã€ã«ã¯æ¬¡ã®5ã€ã§ãã
app.py
config.py
requirements.txt
static/style.css
templates/success.html
ãã¡ã€ã«ã¯è€æ°ãããŸããã倿Žå 容ã¯ãã¹ãŠæ¬¡ã®1ã€ã®ç®çã«ãŸãšãŸã£ãŠããŸããã
æ§ä»æ§ãšæªäœ¿çšã³ãŒãã®æŽç
ãã®ãããæ¬¡ã®ã³ãããã¡ãã»ãŒãžã§èšé²ããŸããã
git commit -m "æ§ExcelåŠçãšæªäœ¿çšã³ãŒããæŽç"
ã³ãããã现ããåããããŠãããŸãšããããŠãèªã¿ã«ãã
1è¡å€æŽãããã³ã«ã³ããããããšãäœæ¥ã®æµãã现ããåæãããŸãã
äžæ¹ã§ãç®çã®ç°ãªã倿Žã倧éã«ãŸãšãããšãããšããå·®åãçè§£ãã«ãããªããŸãã
ä»åã¯ã次ã®åºæºã§ã³ãããããŸããã
é¢é£ãã倿Žã¯ãŸãšãã
å¥ã®ç®çãæ··ããçŽåã§ã³ããããã
ç©æµã§äŸãããªãã
åãå±ãå
ã®è·ç©
â
äžç·ã«ç©ã
å¥ã®å±ãå
ã®è·ç©
â
æ··ããåã«åºè·ãã
ãšããæèŠã§ãã
ã³ãããåã«ç¢ºèªããããš
ã³ãããåã«ã¯ã次ã®2ã€ã確èªããŸããã
git status
git diff --stat
git statusã§ã¯ã倿Žããããã¡ã€ã«ã確èªããŸãã
git diff --statã§ã¯ã倿Žéã®æŠèŠã確èªããŸãã
ä»åã®çµæã¯æ¬¡ã®ãšããã§ããã
app.py | 10 +---------
config.py | 4 ----
requirements.txt | 1 -
static/style.css | 8 --------
templates/success.html | 2 +-
5 files changed, 2 insertions(+), 23 deletions(-)
ãã®æ®µéã§ãé¢ä¿ã®ãªããã¡ã€ã«ãæ··ãã£ãŠããªãããšã確èªããŸããã
13. æçµãã¹ããå®è¡ãã
倿Žãã³ãããããŠpushããããšãpytestãå®è¡ããŸããã
pytest
çµæã¯æ¬¡ã®ãšããã§ãã
================================================== test session starts ==================================================
platform linux -- Python 3.12.3, pytest-9.1.1, pluggy-1.6.0
rootdir: /home/tosane/sales_data_app
plugins: anyio-4.13.0
collected 3 items
test_prompts.py ... [100%]
=================================================== 3 passed in 0.20s ===================================================
3ä»¶ãã¹ãŠæåããŸããã
3 passed in 0.20s
ãã ããçŸåšã®pytestã¯ããã³ããçæããžãã¯ãäžå¿ãšãã3ä»¶ã§ãã
ãã®ããã
pytestãéã£ã
=
ã¢ããªå
šäœã®ãã¹ãŠãä¿èšŒããã
ãšããæå³ã§ã¯ãããŸããã
ãã¹ã察象ã®ç¯å²ãçè§£ããããã§ãæ€çŽ¢ã»å·®å確èªã»ç»é¢ç¢ºèªãçµã¿åãããŠããŸãã
ãã¹ããååšããããšãšãéèŠãªåŠçãååã«å®ãããŠããããšã¯å¥ã§ãã
ã©ã®åŠçããã¹ã察象ãªã®ããææ¡ããå¿ èŠããããŸãã
14. working tree cleanãŸã§ç¢ºèªãã
æåŸã«Gitã®ç¶æ ã確èªããŸããã
git status
çµæã¯æ¬¡ã®ãšããã§ãã
On branch main
Your branch is up to date with 'origin/main'.
nothing to commit, working tree clean
ããã§ã次ã®ç¶æ ã確èªã§ããŸããã
æªã³ãããã®å€æŽããªã
GitHubãšmainãã©ã³ããåæããŠãã
äœæ¥éäžã®ãã¡ã€ã«ãæ®ã£ãŠããªã
ã³ãŒããçŽããã ãã§ã¯ãäœæ¥å®äºã§ã¯ãªã
ä»åãäœæ¥å®äºã次ã®ããã«å®çŸ©ããŸããã
ã³ãŒããä¿®æ£ãã
â
å·®åã確èªãã
â
ãã¹ããéã£ã
â
ã³ããããã
â
GitHubãžpushãã
â
GitHubãšåæãã
â
æªåŠçã®å€æŽãæ®ã£ãŠããªã
ã€ãŸãã
ã³ãŒããçŽãã
â
äœæ¥ãçµãã£ã
ã§ãã
working tree cleanã¯ãåãªã衚瀺ã§ã¯ãããŸããã
次ã®äœæ¥ããååã®æªåŠç倿Žãšæ··ããã«å§ããããç¶æ ã瀺ããŠããŸãã
ç©æµã§èšãã°ãé éãçµãã£ãã ãã§ãªãã垰庫åŸã«è·å°ã確èªããç©ã¿æ®ãããªãããšãŸã§ç¢ºãããç¶æ ã§ãã
15. READMEã«ã仿¥ã®å®çžŸãåæ ãã
ã³ãŒããšãªããžããªã®æŽçãçµãã£ãããšã次ã®2ã€ã®READMEãæŽæ°ããŸããã
-
sales_data_appã®README - GitHubãããã£ãŒã«çšREADME
sales_data_appåŽã®README
æŽæ°å±¥æŽãžã次ã®å 容ã远å ããŸããã
- ãã¢åç»ã»ãµã ãã€ã«ã»ã¹ã¯ãªãŒã³ã·ã§ããã®æŽç
- READMEå ã®ç»åãã¹ä¿®æ£
-
.gitignoreã®æŽç -
.dockerignoreã®æŽç - æ§ExcelåŠçã®åé€
- æªäœ¿çšimportã»äŸåé¢ä¿ã»CSSã®åé€
- å€ãç»é¢ã¿ã€ãã«ã®ä¿®æ£
- pytest 3ä»¶æå
- Gitäœæ¥ããªãŒcleanã®ç¢ºèª
GitHubãããã£ãŒã«çšREADME
2026幎7æ19æ¥ã®ãã€ã«ã¹ããŒã³ãšããŠãä»åã®ç·ç¹æ€ãèšé²ããŸããã
åŠç¿æéãæŽæ°ããŸããã
环èš143æé
â
环èš148æé
READMEã®å€æŽã¯ã次ã®ã³ãããã¡ãã»ãŒãžã§èšé²ããŸããã
git commit -m "READMEã«ãªããžããªç·ç¹æ€ãšåŠç¿148æéãåæ "
16. 5æéã®äœæ¥çµæ
ä»åã®çµæããŸãšãããšã次ã®ãšããã§ãã
äœæ¥æé 5æé
环èšåŠç¿æé 148æé
ã³ãŒãå€æŽ 5ãã¡ã€ã«
å·®å 23è¡åé€ã2è¡ä¿®æ£
æ§ä»æ§ã®æ€çŽ¢ 0ä»¶
Gitç«¶åèšå· 0ä»¶
pytest 3 passed
GitHubãšã®å·®å ãªã
æçµç¶æ
working tree clean
æ°æ©èœã®è¿œå ã¯ãããŸããã
ããããæ¬¡ã®èŠçŽ ãçŸåšã®ä»æ§ãžåãããããŸããã
ã³ãŒã
äŸåé¢ä¿
HTMLã®æèš
CSS
README
ã¹ã¯ãªãŒã³ã·ã§ãã
ãã©ã«ãæ§æ
.gitignore
.dockerignore
Gitã®ç¶æ
ä»ååŠãã ããš
1. åããŠããã¢ããªã«ãå€ãéšåã¯æ®ã
ã¢ããªãæ£åžžã«åããŠããŠãã以åã®æ§æã§å¿ èŠã ã£ãã³ãŒããäŸåé¢ä¿ãæ®ãããšããããŸãã
ä»åã®äŸã§ã¯ã次ã®å€åããããŸããã
Exceläžå¿ã®æ§æ
â
PostgreSQLäžå¿ãžç§»è¡
â
æ§Excelãã©ã«ãèšå®ãopenpyxlãäžèŠã«ãªã
æ©èœè¿œå ã ããç¶ãããšãéå»ã®ä»æ§ãéãã«æ®ããŸãã
ãã®ãããçŸåšã®æ§æãšäžèŽããŠãããã宿çã«ç¢ºèªããå¿ èŠããããŸãã
2. READMEãç»åããœãããŠã§ã¢ã®äžéš
ã³ãŒããææ°ã§ããREADMEã®ç»åã説æãå€ããã°ã第äžè ã«ã¯å€ãç¶æ ãšããŠäŒãããŸãã
å ¬éãªããžããªã§ã¯ã次ã®ãã¹ãŠãææç©ã§ãã
ã³ãŒã
README
ã¹ã¯ãªãŒã³ã·ã§ãã
ãã¢åç»
ãã©ã«ãæ§æ
ã³ãããå±¥æŽ
READMEã¯ãã³ãŒãã®å€åŽã«ããä»å±åã§ã¯ãããŸããã
å©çšè ãæ¡çšæ åœè ãå¥ã®éçºè ãããããžã§ã¯ããçè§£ããããã®å ¥å£ã§ãã
3. GitHubãžçœ®ããã®ãšDockerãžç©ããã®ã¯ç°ãªã
READMEããã¹ããã¡ã€ã«ã¯GitHubã«ã¯å¿ èŠã§ãã
ããããæ¬çªDockerã€ã¡ãŒãžã«ã¯å¿ èŠãªãå ŽåããããŸãã
GitHub
âââ éçºèšé²ã»ãã¹ãã»èª¬æè³æãä¿ç®¡ãã
Docker
âââ æ¬çªå®è¡ã«å¿
èŠãªãã¡ã€ã«ãç©ã
.gitignoreãš.dockerignoreãåãå
容ã«ããã®ã§ã¯ãªããããããã®ç®çã§å€æããå¿
èŠããããŸãã
4. åé€ã«ã¯æ ¹æ ãå¿ èŠ
æªäœ¿çšã«èŠããã³ãŒãããå¢ãã ãã§åé€ããã®ã¯å±éºã§ãã
ä»åã¯ã次ã®é çªã§ç¢ºèªããŸããã
æ€çŽ¢
â
åç
§å
ã®ç¢ºèª
â
çŸåšã®ä»æ§ãšã®æ¯èŒ
â
åé€
â
åæ€çŽ¢
â
ãã¹ã
åé€ãšã¯ãåã«ã³ãŒããæžããäœæ¥ã§ã¯ãããŸããã
ãçŸåšã¯äžèŠã§ããããšèª¬æã§ããç¶æ ã«ããŠããè¡ãäœæ¥ã§ãã
5. æ€çŽ¢çµæ0ä»¶ãéèŠãªç¢ºèªçµæ
æ§ä»æ§ãæ®ã£ãŠããªãããšã確èªããå Žåãgrepã®äžèŽãªãã¯æåŸ
ããçµæã«ãªããŸãã
åé¡ãèŠã€ããæ€çŽ¢
äžèŽãã â 確èªå¯Ÿè±¡ããã
æ®åããŠããªãããšã確ãããæ€çŽ¢
äžèŽãªã â æåŸ
ããç¶æ
æ€çŽ¢çµæã®æå³ã¯ãæ€çŽ¢ããç®çã«ãã£ãŠå€ãããŸãã
6. æ€çŽ¢æ¡ä»¶ã¯èª€æ€åºã®å¯èœæ§ãŸã§èãã
=======ãæ€çŽ¢ãããšãGitç«¶åèšå·ã ãã§ãªããCSSã®åºåãç·ã«ãäžèŽããŸããã
æ€çŽ¢çµæãå€ã
=
åé¡ãå€ã
ã§ã¯ãããŸããã
æ€çŽ¢æ¡ä»¶ãåºãããå¯èœæ§ããããŸãã
æ€çŽ¢çµæã ãã§å€æããããªãäžèŽããã®ããèŠãå¿ èŠããããŸãã
7. ã³ãããã¯ã倿Žãã¡ã€ã«æ°ãã§ã¯ãªãã倿Žç®çãã§åãã
ä»åã®å€æŽã¯5ãã¡ã€ã«ã«ãŸããããŸããã
ããããç®çã¯ãã¹ãŠåãã§ããã
æ§ä»æ§ãšæªäœ¿çšã³ãŒãã®æŽç
ãã®ããã1ã€ã®ã³ããããšããŠãŸãšããŸããã
ã³ããããåããåºæºã¯ã
äœãã¡ã€ã«å€æŽããã
ããã
äœã®ããã«å€æŽããã
ã®æ¹ãçè§£ãããããšæããŸããã
8. working tree cleanã¯æ¬¡ã®äœæ¥ãžã®åºçºæ¡ä»¶
æªã³ãããã®å€æŽãæ®ã£ããŸãŸæ¬¡ã®äœæ¥ãå§ãããšãå¥ç®çã®å€æŽãæ··ããå¯èœæ§ããããŸãã
ä»åã®å€æŽ
+
次åã®å€æŽ
=
ã³ãããã®ç®çãåããã«ãããªã
working tree cleanãŸã§ç¢ºèªããŠããã°ã次ã®äœæ¥ã空ã®è·å°ããå§ããããŸãã
å¥ã®ãããžã§ã¯ãã§ã䜿ãããªããžããªç·ç¹æ€ãã§ãã¯ãªã¹ã
ä»åã®äœæ¥ããèªå以å€ã®ãããžã§ã¯ãã§ãåå©çšã§ãã圢ã«ãŸãšããŸãã
å®è¡ã³ãŒã
- æªäœ¿çšimportãæ®ã£ãŠããªãã
- 廿¢ãã仿§ã®èšå®ãæ®ã£ãŠããªãã
- 䜿ãããŠããªã颿°ãåŠçãæ®ã£ãŠããªãã
- æ§ãã©ã«ããæ§ãã¡ã€ã«åãžã®åç §ãæ®ã£ãŠããªãã
- æªäœ¿çšCSSãã¯ã©ã¹ãæ®ã£ãŠããªãã
- JavaScriptããåçã«äœ¿ãããã¯ã©ã¹ã§ã¯ãªãã確èªããã
äŸåé¢ä¿
- çŸåšäœ¿ã£ãŠããªãã©ã€ãã©ãªãæ®ã£ãŠããªãã
- åé€åã«ã³ãŒãå ã®åç §ç®æãæ€çŽ¢ããã
- çŽæ¥äœ¿çšããŠããªããŠãå¥ã©ã€ãã©ãªãå¿ èŠãšããŠããªãã
- äŸåé¢ä¿åé€åŸã«ã¢ããªããã¹ããåãã確èªããã
READMEã»ç»é¢
- READMEã®èª¬æãšçŸåšã®å®è£ ãäžèŽããŠããã
- ã¹ã¯ãªãŒã³ã·ã§ããã¯ææ°çã
- ç»åãã¹ãçŸåšã®ãã©ã«ãæ§æãšäžèŽããŠããã
- ãã¢åç»ã®èª¬æãçŸåšã®ç»é¢ãšççŸããŠããªãã
-
å€ãç»é¢æèšã
titleãæ®ã£ãŠããªãã - çŸåšäœ¿ã£ãŠããªãæ©èœãREADMEã«æžãããŠããªãã
ãã¡ã€ã«æ§æ
- åç»ã»ç»åã»è³æãçšéå¥ã«æŽçãããŠããã
- ã«ãŒãçŽäžãžäžèŠãªãã¡ã€ã«ãæ£ãã°ã£ãŠããªãã
- ããã¯ã¢ãããã¡ã€ã«ãæ®ã£ãŠããªãã
- ãã¡ã€ã«åã ãã§çšéãæšæž¬ã§ããã
Git
-
.gitignoreã§æ©å¯æ å ±ãé€å€ããŠããã - ä»®æ³ç°å¢ããã£ãã·ã¥ãé€å€ããŠããã
- ããŒã«ã«DBãçããŒã¿ãé€å€ããŠããã
-
git statusã§å€æŽå¯Ÿè±¡ã確èªããã -
git diffãŸãã¯git diff --statã§å·®åã確èªããã - ç®çã®ç°ãªã倿Žãæ··ãã£ãŠããªãã
- Gitç«¶åèšå·ãæ®ã£ãŠããªãã
- GitHubãžpushããã
-
working tree cleanã«ãªã£ãŠããã
Docker
-
.dockerignoreã§.gitãé€å€ããŠããã -
.envããã«ã察象ããé€å€ããŠããã - ä»®æ³ç°å¢ããã£ãã·ã¥ãé€å€ããŠããã
- ããŒã«ã«DBãExcelè³æãé€å€ããŠããã
- READMEã»ç»åã»åç»ãªã©æ¬çªäžèŠè³æãé€å€ããŠããã
- GitHubãžæ®ããã¡ã€ã«ãšDockerãžç©ããã¡ã€ã«ãåºå¥ããŠããã
æçµç¢ºèª
- åé€ããååãåæ€çŽ¢ããã
- æ€çŽ¢çµæã誀æ€åºã§ã¯ãªãã確èªããã
- ãã¹ããéã£ãã
- ãã¹ã察象ã®ç¯å²ãçè§£ããŠããã
- å¿ èŠãªç»é¢ãç®èŠç¢ºèªããã
- READMEãžä»åã®å€æŽãåæ ããã
- GitHubãšããŒã«ã«ãåæããŠããã
ãããã«
ä»åã®5æéã§ã¯ãæ°ããæ©èœã远å ããŠããŸããã
ããã§ããæ¬¡ã®ç¶æ ãŸã§æŽããããšãã§ããŸããã
- çŸåšã®ä»æ§ãšã³ãŒããäžèŽããŠãã
- å€ãäŸåé¢ä¿ãæ®ã£ãŠããªã
- READMEãšææ°ç»é¢ãäžèŽããŠãã
- åç»ãç»åã®åœ¹å²ãåããããã
- GitHubãžæ®ããã®ãæŽçãããŠãã
- æ¬çªDockerãžäžèŠãªè³æãç©ãŸãªã
- ãã¹ããéã£ãŠãã
- GitHubãšåæããŠãã
- äœæ¥ããªãŒãcleanã§ãã
ç©æµçŸå Žã§ã¯ãè·ç©ãç©ãã ãã§ãªããæ¬¡ã®ç¹ã確èªããŸãã
äžèŠãªè·ç©ãæ··ãã£ãŠããªãã
ç©èŒå Žæã¯åãããããã
è·ç©ãšäŒç¥šãäžèŽããŠããã
é
éåŸã«ç©ã¿æ®ãããªãã
次ã®éè¡ã空ã®è·å°ããå§ããããã
ãœãããŠã§ã¢éçºã§ãåãã§ããã
ã³ãŒãã远å ãã
â
äžèŠãªã³ãŒããéãã
â
説æè³æãçŸåšã®ç¶æ
ãžåããã
â
æ¬çªãžç©ããã¡ã€ã«ãæŽçãã
â
ãã¹ããã
â
GitHubãžåºè·ãã
â
working tree cleanã確èªãã
ä»åã®ç·ç¹æ€ã§äžçªåŒ·ãæããã®ã¯ã次ã®ããšã§ãã
ãªããžããªã®ç·ç¹æ€ãšã¯ãäžèŠãã¡ã€ã«ãæ¶ãäœæ¥ã§ã¯ãªãã
çŸåšã®ä»æ§ãšãã³ãŒãã»äŸåé¢ä¿ã»ç»é¢ã»èª¬æè³æã»åºè·ç¶æ ãäžèŽãããäœæ¥ã§ããã
æ°æ©èœãç©ãåã«ãçŸåšã®è·å°ãç¹æ€ããã
ä»åã®5æéã¯ã次ã®éçºãå®å šã«å§ããããã®æŽåæéã«ãªããŸããã
é¢é£ãªã³ã¯
GitHub
ãªã³ã©ã€ã³ãã¢
Qiita
