{"id":21204109,"url":"https://github.com/miku0129/qfb-tokyo","last_synced_at":"2026-05-08T10:34:40.838Z","repository":{"id":44755051,"uuid":"418859581","full_name":"miku0129/qfb-tokyo","owner":"miku0129","description":"Manage a list of book titles 📚 🌈","archived":false,"fork":false,"pushed_at":"2023-02-25T22:31:24.000Z","size":218,"stargazers_count":0,"open_issues_count":10,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-03T15:11:12.156Z","etag":null,"topics":["firebase","flask","python"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/miku0129.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-10-19T09:38:42.000Z","updated_at":"2023-02-21T16:05:55.000Z","dependencies_parsed_at":"2024-11-20T20:32:20.562Z","dependency_job_id":"1b1ba399-75d7-471f-9d8c-5819cc51a3f3","html_url":"https://github.com/miku0129/qfb-tokyo","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/miku0129/qfb-tokyo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miku0129%2Fqfb-tokyo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miku0129%2Fqfb-tokyo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miku0129%2Fqfb-tokyo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miku0129%2Fqfb-tokyo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/miku0129","download_url":"https://codeload.github.com/miku0129/qfb-tokyo/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miku0129%2Fqfb-tokyo/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32776898,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-08T08:22:46.396Z","status":"ssl_error","status_checked_at":"2026-05-08T08:22:45.650Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["firebase","flask","python"],"created_at":"2024-11-20T20:29:59.338Z","updated_at":"2026-05-08T10:34:40.820Z","avatar_url":"https://github.com/miku0129.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Project - Book list 📚\n\n#### About \n---\n\nAs a final project deliverable for CS50x, I created a full-stack app to manage the book lists for the book club I belong to.\nCS50x の最終課題として、所属するブッククラブで本のリストを管理するためにフルスタックのアプリを作成しました。\n\nI did this project from 2021/10/17 to 2021/11/7. \n作成期間は 2021/ 10/17 から 2021/11/7 です。\n\n#### Video Demo: https://youtu.be/LKHt2ZldNg0\n\n\n#### Tech\n---\n\n- Python 3.10.10\n- pipenv, Flask\n- Firebase for Firestore and Authentication.\n- Heroku\n\n#### Structure\n---\n\nMCV model \n- M,  Data is stored in Firestore - Firebase\n- C,  Python and Flask manage data between the database and the view\n- V,  jinjya provide templates for the view\n\napp.py contains main functions to contlolle model and view. It also initialized Firebase_admin to use Firestore and autentication. \nhelpers.py contains functions which be used in app.py. I sepalated functions to make them readable. \nPipfile and Pipfile.lock stores information about dependencies of my projects. \nProckfile, requrements.txt and runtime.txt contains information to deploy my project to Heroku. \u003cbr\u003e\n\nMCV model \n- M, データはFirestore - Firebaseに保存されています\n- C, PythonとFlaskがデータベースとビューの間のデータを管理します\n- V, jinjyaはビューのためのテンプレートを提供します\n\napp.pyには、モデルとビューを接続するための主要な関数が含まれています。また、Firebase_adminを初期化し、FirestoreとAutenticationを使用しています。\nhelpers.py は app.py で使用される関数を含んでいます。読みやすいように関数を分けています。\nPipfileとPipfile.lockは、私のプロジェクトの依存関係についての情報を格納しています。\nProckfile, requrements.txt, runtime.txtには、Herokuにプロジェクトをデプロイするための情報が格納されています。\n\n#### Development\n---\n\n```\n\n#### 1. アプリ起動\n\nPython仮想環境を起動\npipenv shell\n\n仮想環境内にてFlaskサーバー起動\nflask run\n\n#### 2. アプリ開発\n\n1) 開発一般\n仮想環境内にてライブラリのインストール\npipenv install [ライブラリ名]\n\nバージョン管理は git コマンドで行う\n開発は developブランチ, \n本番は mainブランチで管理する\n\nデバッグは VSCodeのデバッグ画面を開き\n任意の場所にブレークポイントを張り\nデバッグ実行ボタンを押下する。\nその際には\n仮想環境を閉じておくこと,\nデバッグしたいフォルダをフォーカスすること。\nデバッグ終了時コマンドは  \ndeactivate\n\n2) デプロイ\nヘロクにログインする\nheroku login\n\nデプロイ\ngit checkout main // ローカルのメインに移動\ngit pull main // リモートのメインから最新のコードを取得する\ngit push heroku main //ヘロクにデプロイする\n\nデプロイしたページを開く\nheroku open\n\n#### 3. アプリ停止\n\nFlaskサーバーの起動停止\nctrl + C\n\nPython仮想環境を起動停止\nexit\n\n```\n\n#### Description: \n---\n\nThe first challenge was that creating an environment for creating a product. Since I'd like to minimize my project, I needed to set up for my VSCode to debug.\u003cbr\u003e\nThe second challenge was that finding the reason why libraries I installed was not found by terminal. I found that it was because different Python was used in VSCode and terminal if I installed several different version of Python.\u003cbr\u003e\nThe third challenge was that finding the way to implement creck event in Python.   Since I thought it's important for a better user experience, I spent a time to research how to implement a button to vote a book. Then I decided to use jQuery and ajax.\u003cbr\u003e\nTo solve those issues, I read error logs and researched with that words. Through this experience, I got confidence reading error messages.\u003cbr\u003e\n\n最初の課題は、製品を作るための環境作りでした。プロジェクトを最小化したいので、VSCodeでデバッグするための環境を整える必要がありました。\u003cbr\u003e\n2つ目の課題は、インストールしたライブラリがターミナルで見つからない原因を探ることでした。いくつかの異なるバージョンのPythonをインストールした場合、VSCodeとターミナルで異なるPythonが使われていることが原因だとわかりました。\u003cbr\u003e\n3つ目の課題は、Pythonでclickイベントを実装する方法を見つけることでした。より良いユーザー体験のために重要だと思ったので、本に投票するためのボタンを実装する方法の研究に時間を費やしました。そして、jQueryとajaxを使うことにしました。\u003cbr\u003e\nこのような問題を解決するために、私はエラーログを読み、その言葉を使って研究しました。このような経験を通して、エラーメッセージを読むことに自信を持つことができました。\u003cbr\u003e。\n\n#### Futre features\n---\n\n- Users can leave comments for each book\n- Users can create own icon with uploading picture\n- Uploading book image\n\n#### Reference\n\n- [Pipenv: Python Dev Workflow for Humans](https://pipenv-fork.readthedocs.io/en/latest/index.html#pipenv-python-dev-workflow-for-humans)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmiku0129%2Fqfb-tokyo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmiku0129%2Fqfb-tokyo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmiku0129%2Fqfb-tokyo/lists"}