Skip to content

CMRU-Computer-Science-66/CMRU-API

Repository files navigation

CMRU API (Unofficial)

NPM Version NPM Last Update GitHub License

CMRU API มุ่งเน้นการทดลองสร้างไลบรารีสำหรับสื่อสารกับบริการที่เกี่ยวข้องกับมหาวิทยาลัยราชภัฏเชียงใหม่ โดยมุ่งหวังให้ผู้สนใจด้านโปรแกรมมิ่งได้ศึกษาวิธีเรียกใช้งาน API, การจัดการ Session, และการแปลงข้อมูล HTML เป็นโครงสร้าง json ที่นำไปใช้ต่อได้ง่าย

Warning

โปรเจ็กต์งานอดิเรกที่พัฒนาขึ้นเพื่อสำรวจการเชื่อมต่อกับบริการที่เกี่ยวข้องกับ CMRU โดยไม่มีความเกี่ยวข้องทางการกับหน่วยงานหรือบุคลากรของมหาวิทยาลัย

Installation 📦

เลือกติดตั้งแพ็กเกจด้วยตัวจัดการที่ถนัด:

bun add @cmru-comsci-66/cmru-api

npm install @cmru-comsci-66/cmru-api

pnpm add @cmru-comsci-66/cmru-api

yarn add @cmru-comsci-66/cmru-api

# หรือ @cmru-computer-science-66/cmru-api

Usage

TypeScript

ตัวอย่างการใช้งานพร้อม type inference:

import { ApiClient, ApiServer, type ParsedScheduleData } from "@cmru-comsci-66/cmru-api";

const client = new ApiClient(ApiServer.BUS);
const busApi = client.api();

await busApi.login("66143000", "password");
const schedule: ParsedScheduleData = await busApi.getSchedule();

console.log(schedule.reservations.length);

TypeScript จะได้รับไฟล์ definition โดยอัตโนมัติจากแพ็กเกจ ไม่จำเป็นต้องติดตั้งไลบรารี @types เสริม

JavaScript

ตัวอย่างสำหรับ Node.js 20+ หรือ Bun ที่รองรับ ES Module:

import { ApiClient, ApiServer } from "@cmru-comsci-66/cmru-api";

const apiClient = new ApiClient(ApiServer.BUS);
const busApi = apiClient.api();

await busApi.login("66143000", "password");
const schedule = await busApi.getSchedule();

console.log(schedule);

หากต้องการใช้ในสภาพแวดล้อม CommonJS ให้เรียกใช้ const { ApiClient, ApiServer } = require("@cmru-comsci-66/cmru-api");

Documentation 📚

สามารถอ่านรายละเอียดของโมดูล ฟังก์ชัน และชนิดข้อมูลทั้งหมดได้ที่ เว็บไซต์เอกสารประกอบ

Supported ✅

  • การจองรถบัส

    • จอง/ยืนยัน/ยกเลิกการจองรถ >0.2.0
    • ดูข้อมูลตารางเดินรถต่างๆ >0.3.2
    • โปรไฟล์ >0.5.0
  • สำนักทะเบียน

    • ตารางเรียน/สอบ นักศึกษา >0.2.0
    • ประวัตินักศึกษา >0.5.0
    • ผลการศึกษา >0.5.0
    • ประวัติเข้าร่วมกิจกรรม >0.5.0
    • ตรวจสอบการผ่านกิจกรรม >0.5.0
    • แผนการเรียน >0.5.0

Planned 📝

  • สำนักทะเบียน
    • ระบบลงทะเบียนรายวิชา
    • ระบบแจ้งเตือนและประกาศ
    • ระบบบันทึกข้อมูลความถนัด
    • เปลี่ยนรหัสผ่าน
    • ปฏิทินการศึกษา
    • ลงทะเบียนเพิ่มถอน
    • ผลการลงทะเบียนและพิมพ์ใบชำระเงิน
    • พิมพ์ใบเสร็จ
    • ภาระค่าใช้จ่ายและทุนการศึกษา
    • ประเมินผู้สอน
    • ตรวจสอบสถานะจบการศึกษา
    • คำร้องออนไลน์
    • ผลอนุมัติคำร้อง
    • สมัครเข้าร่วมกิจกรรม
    • วิชาที่เปิดสอน
    • ค้นหาตารางเรียน
    • ตารางสอนอาจารย์
    • ค้นหาตารางการใช้ห้อง
    • จำนวนนักศึกษาตามหมู่เรียน
    • ตรวจสอบหลักฐานการรายงานตัวนักศึกษา
    • ระบบขอเอกสารทางการศึกษา
    • พิมพ์ใบชำระค่าเทียบโอน/ยกเว้นผลการเรียน
    • แจ้งปัญหาการใช้งานสารสนเทศ
    • เสนอความคิดเห็น
    • ประวัติการเข้าใช้ระบบ

Quick Start 🚀

CLI - เริ่ม API Server

รัน API server

# ใช้ bunx (แนะนำ)
bunx @cmru-comsci-66/cmru-api serve

# หรือใช้ npx
npx @cmru-comsci-66/cmru-api serve

# กำหนด port และ host
PORT=8080 HOST=0.0.0.0 bunx @cmru-comsci-66/cmru-api serve

Server จะทำงานที่ http://localhost:3000 พร้อม REST API endpoints:

Disclaimer ⚠️

  • โปรเจ็กต์นี้เป็นงานอดิเรกส่วนบุคคล ไม่ได้เป็นผลิตภัณฑ์หรือบริการอย่างเป็นทางการของ CMRU หรือองค์กรใดๆ
  • ผู้พัฒนาไม่มีตำแหน่งหน้าที่หรือบทบาทตัวแทนของ CMRU ทุกความคิดเห็นและการตัดสินใจในที่เก็บโค้ดนี้เป็นความรับผิดชอบส่วนตัว
  • โค้ดและข้อมูลถูกจัดทำขึ้นเพื่อการทดลองและการศึกษา ผู้ใช้ควรตรวจสอบความถูกต้องก่อนนำไปใช้จริง
  • ผู้พัฒนาไม่รับประกันความถูกต้อง ความต่อเนื่อง หรือความปลอดภัยของการใช้งาน และไม่รับผิดชอบต่อความเสียหายใดๆ ที่อาจเกิดขึ้น

Contribution 🤝

ยินดีรับคำแนะนำ ปรับปรุง รายงานบั๊ก และ Pull Request สำหรับการแก้ไขบั๊กหรือเพิ่มฟีเจอร์ โดยทุกข้อเสนอควรระบุชัดเจนว่าเป็นการทดลองหรือเพื่อการเรียนรู้ และต้องไม่ละเมิดข้อตกลงหรือทรัพยากรของ CMRU สามารถแจ้งปัญหาได้ที่ GitHub Issues

License 📄

โปรเจ็กต์นี้เผยแพร่ภายใต้เงื่อนไขที่ระบุในไฟล์ LICENSE ผู้ใช้งานควรอ่านรายละเอียดก่อนนำไปใช้ในบริบทอื่น