{"id":39012869,"url":"https://github.com/notsu/fullstack-course","last_synced_at":"2026-01-17T17:22:49.537Z","repository":{"id":205543209,"uuid":"689569843","full_name":"notsu/fullstack-course","owner":"notsu","description":null,"archived":false,"fork":false,"pushed_at":"2023-11-27T15:02:21.000Z","size":1176,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2023-11-27T16:27:19.845Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://fullstack-course-murex.vercel.app","language":"Vue","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/notsu.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}},"created_at":"2023-09-10T08:24:19.000Z","updated_at":"2023-11-27T16:27:26.330Z","dependencies_parsed_at":"2023-11-27T16:27:19.741Z","dependency_job_id":"55bc3cc7-4313-4c6b-aba9-614232bbf7bd","html_url":"https://github.com/notsu/fullstack-course","commit_stats":null,"previous_names":["notsu/fullstack-course"],"tags_count":0,"template":null,"template_full_name":null,"purl":"pkg:github/notsu/fullstack-course","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/notsu%2Ffullstack-course","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/notsu%2Ffullstack-course/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/notsu%2Ffullstack-course/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/notsu%2Ffullstack-course/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/notsu","download_url":"https://codeload.github.com/notsu/fullstack-course/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/notsu%2Ffullstack-course/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28512710,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-17T13:38:16.342Z","status":"ssl_error","status_checked_at":"2026-01-17T13:37:44.060Z","response_time":85,"last_error":"SSL_read: 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":[],"created_at":"2026-01-17T17:22:49.402Z","updated_at":"2026-01-17T17:22:49.488Z","avatar_url":"https://github.com/notsu.png","language":"Vue","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Portfolio Website\n\nFrontend: https://fullstack-course-murex.vercel.app/\nBackend: https://fullstack-course-backend.vercel.app/\n\n## How to use this repo\n\nCheckout following branches to learn step-by-step.\n\n### Frontend Development\n\n1. `frontend-01-nuxt`\n   1. ติดตั้ง Nuxt\n   2. ทำความรู้จัก TailwindCSS\n   3. ติดตั้ง TailwindCSS \n   4. ลองสร้าง Components ด้วย TailwindCSS\n   5. ทำความรู้จัก `\u003ctemplate\u003e`\n   6. ทำความรู้จัก `\u003cscript setup\u003e`\n\n2. `frontend-02-pages-and-layouts`\n   1. ทำความรู้จัก pages\n   2. สร้าง page หน้าแรก\n   3. สร้าง page หน้า portfolio\n   4. สร้าง page หน้า login\n   5. สร้าง layout สำหรับหน้าปกติ\n   6. สร้าง layout สำหรับหน้า login\n\n3. `frontend-03-component-badge`\n   1. ทำความรู้จัก components\n   2. base prefix\n   3. ลองสร้าง BadgeItem\n   4. รู้จัก slot\n   5. ลองสร้าง BadgeList\n   6. รู้จัก for loop\n   7. รู้จัก props\n\n4. `frontend-04-component-button-and-link`\n   1. ลองสร้าง Button\n   2. ลองสร้าง Link\n   3. ทำความรู้จัก Composables\n   4. รู้จัก Fallthrough attributes\n\n5. `frontend-05-component-icon`\n   1. ทำความรู้จักการสร้าง icon\n   2. การนำ icon ไปใช้\n\n6. `frontend-06-component-header`\n   1. การสร้าง component สำหรับใช้ครั้งเดียว\n   2. นำไปใช้ใน layout\n\n7. `frontend-07-component-footer`\n   1. นำไปใช้ใน layout\n\n8. `frontend-08-page-homepage`\n   1. รู้จักกับ useHead\n   2. และจะเริ่มสร้างรายละเอียดของหน้าแรก\n\n9. `frontend-09-component-skill-list`\n   1. สร้างรายละเอียดของหน้า skill list\n   2. ทำความรู้จัก if else condiution\n   3. ทำความรู้จัก event\n\n10. `frontend-10-component-experience-item`\n    1. ทำความรู้จักกับ moment\n    2. ทำความรู้จักกับ computed\n\n11. `frontend-11-component-experience-list`\n    1. สร้าง list สำหรับ experience\n\n12. `frontend-12-component-portfolio-list`\n    1. สร้าง list สำหรับ portfolio\n\n13. `frontend-13-page-login`\n    1. เราจะเริ่ม implement หน้า login กัน\n\n14. `frontend-14-component-login-form`\n    1. รู้จักกับ vee-validate\n    2. รู้จักกับ middlewares\n    3. รู้จักกับ prism เพื่อจำลอง API ของ Open API (Swagger)\n\n15. `frontend-15-component-input`\n    1. สร้าง input component\n\n16. `frontend-16-component-error-message`\n    1. สร้าง error message สำหรับแสดง error\n\n17. `frontend-17-state-management`\n    1. รู้จักกับสิ่งที่้เรียกว่า stage management\n\n18. `frontend-18-store-pinia`\n    1. pinia เข้ามาช่วยอะไร\n\n19. `frontend-19-store-auth`\n    1. เขียน store ของ auth\n\n20. `frontend-20-component-skill-form`\n    1. สร้าง skill form ขึ้นมา\n\n21. `frontend-21-component-editable`\n    1. สร้าง editable เพื่อใช้แสดง mode ของ view และ edit\n\n22. `frontend-22-store-profile-skill`\n    1. implement store สำหรับ profile โดยเริ่มจาก skill\n\n23. `frontend-23-component-experience-form`\n    1. สร้าง form สำหรับ experience\n\n24. `frontend-24-component-experience-form-field`\n    1. สร้าง form สำหรับ experience ในแต่ละก้อนย่อย\n\n25. `frontend-25-store-profile-experience`\n    1. implement store สำหรับ experience\n\n26. `frontend-26-store-profile-portfolio`\n    1. implement store สำหรับ portfolio\n\n27. `frontend-27-page-portfolio-id`\n    1. implement portfolio page\n    2. ทำความรู้จัก carousel\n\n### Backend Development\n\n1. `backend-01-handler-auth`\n   1. ทำความรู้จัก express.js\n   2. ทำความรู้จัก dependency injection\n   3. สร้าง handler เพื่อส่งค่า login กลับไป\n   \n2. `backend-02-handler-profile`\n   1. สร้าง handler เพื่อส่งค่า login กลับไป\n\n3. `backend-03-handler-portfolio`\n   1. สร้าง handler เพื่อส่งค่า login กลับไป\n\n4. `backend-04-service-auth`\n   1. เติม service ใน dependency injection\n   2. ย้าย business logic มาไว้ในนี้\n   3. เขียน validation\n\n5. `backend-05-service-profile`\n   1. เติม service ใน dependency injection\n   2. ย้าย business logic มาไว้ในนี้\n   3. เขียน validation\n\n6. `backend-06-service-portfolio`\n   1. เติม service ใน dependency injection\n   2. ย้าย business logic มาไว้ในนี้\n   3. เขียน validation\n\n7. `backend-07-repository-user`\n   1. สร้าง mongoose\n   2. implement repository \n   3. เติม repository ใน dependency injection\n   4. เปลี่ยนให้ service มาเรียกใช้ mongodb\n\n8. `backend-08-repository-profile`\n   1. สร้าง mongoose\n   2. implement repository \n   3. เติม repository ใน dependency injection\n   4. เปลี่ยนให้ service มาเรียกใช้ mongodb\n\n9. `backend-09-repository-portfolio`\n   1. สร้าง mongoose\n   2. implement repository \n   3. เติม repository ใน dependency injection\n   4. เปลี่ยนให้ service มาเรียกใช้ mongodb\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnotsu%2Ffullstack-course","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnotsu%2Ffullstack-course","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnotsu%2Ffullstack-course/lists"}