Git Product home page Git Product logo

dvgamerr / tech-events-calendar Goto Github PK

View Code? Open in Web Editor NEW

This project forked from thaiprogrammer/tech-events-calendar

0.0 1.0 0.0 908 KB

🗓 เว็บไซต์และฐานข้อมูลรวบรวม Tech events ต่างๆ สำหรับคนสาย Tech ในไทย

Home Page: https://calendar.thaiprogrammer.org/

JavaScript 67.06% HTML 5.23% Vue 27.63% CSS 0.08%

tech-events-calendar's Introduction

Thai · English

ThaiProgrammer/tech-events-calendar

calendar.thaiprogrammer.org เป็นโปรเจกต์เพื่อรวบรวมข้อมูลของ Tech events ต่างๆ เพื่อให้ง่ายต่อการติดตาม ค้นหา และเพื่อส่งเสริมให้คนสาย Tech ในไทย ได้มาพบปะเจอกันมากขึ้น

Screenshot

โปรเจกต์นี้แบ่งเป็น 3 ส่วน:

  1. โฟลเดอร์ data เก็บไฟล์ข้อมูลเกี่ยวกับ Tech event ต่างๆ
  2. โฟลเดอร์ scripts และ lib เก็บโค้ดสำหรับอ่านไฟล์ข้อมูลในข้อ 1 เพื่อสร้างเป็นไฟล์ JSON (สำหรับให้นักพัฒนาไปใช้ต่อ) และไฟล์ ICS (เพื่อเชื่อมกับ Google Calendar ให้คนมากดติดตามได้ง่ายๆ)
  3. โฟลเดอร์ website เก็บโค้ดสำหรับสร้างหน้าเว็บ calendar.thaiprogrammer.org

หลักการและเหตุผล

ที่มาของโปรเจกต์นี้ เกิดจาก:

  • มีคนถามผมเยอะมากว่า “ปกติตามพวกงาน Tech event ต่างๆ จากที่ไหน” ซึ่งปกติผมจะตามดูจากเฟสบุ๊ก และดูตาม Event platform ต่างๆ เช่น Meetup
  • ข้อมูลพวกนี้ยังไม่มีใครรวมไว้ที่เดียว แต่เรามี Event platform หลายเจ้า ซึ่งแต่ละเจ้าก็มีแค่ข้อมูลของระบบตัวเอง ส่งผลให้หา Tech event ที่น่าสนใจยาก เนื่องจากข้อมูลกระจัดกระจาย

จึงเกิดเป็นโปรเจกต์นี้ขึ้นมา

เทคโนโลยีที่ใช้

  • ไฟล์ข้อมูล ในโฟลเดอร์ data เก็บเป็นไฟล์ภาษา Markdown โดยเก็บข้อมูลเพิ่มเติมไว้ใน YAML Front Matter ดูรูปแบบการเก็บข้อมูลได้ที่หน้านี้
  • สคริปต์เพื่อประมวลผลไฟล์ข้อมูล เขียนด้วยภาษา JavaScript รันด้วย Node.js
  • เว็บไซต์ เขียนด้วย JavaScript โดยใช้เฟรมเวิร์ค Vue ในการสร้างหน้าเว็บ, Vuex สำหรับจัดการข้อมูล, vue-router สำหรับการจัดการ URL Routing และใช้ Primer เป็น CSS Framework

เพื่อให้โค้ดและข้อมูลในโปรเจกต์นี้มีข้อมูลที่ถูกรูปแบบอยู่เสมอ เราจึงมีการทำ Continuous integration (อ่านเพิ่มเติม) และ Continuous delivery โดยในทุกๆ Commit เราจะมีการทดสอบโค้ดอัตโนมัติ (Automated testing) ว่าทำงานถูกต้องหรือเปล่า รวมถึงมีการเช็ครูปแบบโค้ด ว่าเขียนตาม JavaScript Standard Style หรือไม่ เมื่อโค้ดผ่านการทดสอบทั้งหมด เราจะทำการ Deploy โค้ดขึ้นไปบนเว็บทันที โดยไม่ต้อง Deploy มือเลย

  • เราใช้ CircleCI เพื่อทำการทดสอบโค้ดในทุกๆ Commit รวมถึงเวลามีคน Contribute โค้ดหรือข้อมูลใน Pull request ด้วย
  • เราใช้ Netlify เป็นเว็บโฮสติ้ง โดยที่ Netlify จะ Deploy เว็บให้โดยอัตโนมัติเมื่อโค้ดเข้า master branch นอกจากนี้ Netlify ยังมีฟีเจอร์ Deploy previews อีกด้วย ซึ่งเวลาเปิด Pull request ใน GitHub จะทำการ Deploy เป็น URL สำหรับการ Demo โดยเฉพาะให้ด้วย

Development

โปรเจกต์นี้พัฒนาโดยอิงตาม GitHub Flow (คนละอย่างกับ Git Flow นะ) โดยในส่วนนี้ จะ Assume พื้นฐานเกี่ยวกับ Git และ GitHub และพื้นฐานเกี่ยวกับการใช้งาน Command Line และ Node.js เบื้องต้น

  1. ติดตั้ง Node.js และ Yarn (เวอร์ชั่นล่าสุด)
  2. ทำการโคลน Repository นี้
  3. รันคำสั่ง yarn install เพื่อติดตั้งไลบรารี่ต่างๆ ที่จำเป็น

คำสั่งต่างๆ

  • สั่ง yarn build-json เพื่อประมวลผลข้อมูล และสร้างเป็นไฟล์ JSON
  • สั่ง yarn website เพื่อเปิดเซิฟเวอร์สำหรับพัฒนาเว็บไซต์ โดยสามารถดูเว็บไซต์ได้ที่ http://localhost:8080

Contributing

โปรเจกต์นี้ถูกพัฒนาโดย Community โดยคุณเองก็สามารถช่วยพัฒนาโปรเจกต์นี้ให้ไปข้างหน้าได้เช่นกัน โดยมีหลายช่องท่าง เช่น:

  • กด Star ที่ Repo นี้
  • แชร์และโปรโหมตเว็บ calendar.thaiprogrammer.org ให้เป็นที่รู้จักมากขึ้น ส่งโปรเจกต์นี้ให้เพื่อนดู ชวนกันมา Contribute ชวนเพื่อนไปงาน Event ต่างๆ
  • ส่งข้อมูลงาน Tech event ที่ยังไม่อยู่ในระบบ
  • ช่วยแก้ไขข้อมูลที่ไม่ถูกต้อง โดยในหน้าเว็บ คุณสามารถกดปุ่ม “Edit on GitHub” เพื่อแก้ไขข้อมูลบน GitHub ได้เลย และส่ง Pull request มาให้เรา
  • ช่วยเขียนคู่มือ เพื่อให้มือใหม่สามารถเข้ามาช่วยพัฒนาโปรเจกต์นี้ได้ง่ายขึ้น
  • แก้บั๊ก หรือเพิ่มฟีเจอร์ต่างๆ
  • สอนเพื่อนของคุณใช้งาน GitHub โดยให้ลองมาร่วมพัฒนาและปรับปรุงโปรเจกต์นี้
  • รายงานบั๊ก เสนอไอเดียต่างๆ เพื่อให้โปรเจกต์นี้ดีขึ้น โดยสามารถสร้าง Issue ใน Repository นี้ (เขียนเป็นภาษาไทยได้)

tech-events-calendar's People

Contributors

dtinth avatar llun avatar mahasak avatar nearonline avatar koobitor avatar notjiam avatar scoombe avatar

Watchers

Kananek Thongkam avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.