Skip to content

Repository files navigation


Logo

TIDTU

Tra cứu thông tin lịch thi Đại học Duy Tân
🌐 Xem Live »

Report Bug · Request Feature

Table of Contents
  1. About The Project
  2. Getting Started With Developer
  3. Roadmap
  4. Contributing
  5. License

About The Project

TIDTU Screenshot TIDTU là ứng dụng web giúp sinh viên Đại học Duy Tân lịch thi. Dự án được xây dựng theo kiến trúc monorepo với Turborepo, gồm frontend Vue 3 và các Cloudflare Workers phục vụ backend.

(back to top)

Built With

  • Vue.js
  • Vite
  • TailwindCSS
  • Hono
  • Cheerio.js
  • Cloudflare
  • Turborepo

(back to top)

Monorepo Structure

tidtu/
├── apps/
│   ├── website/          # Frontend — Vue 3 + Vite + TailwindCSS
│   ├── worker-cache/     # Cache service — Express + Cheerio + Cloudflare KV
│   ├── worker-gateway/   # API Gateway — Hono trên Cloudflare Workers
│   └── worker-pdaotao/   # Scraper Worker — Cloudflare Workers
└── packages/             # Shared packages (reserved)

(back to top)


Getting Started With Developer

Prerequisites

  • Node.js >= 18

  • pnpm >= 9 (recommended)

    npm install -g pnpm
  • Wrangler CLI (để phát triển Cloudflare Workers)

    pnpm add -g wrangler

Installation

  1. Clone the repo

    git clone https://github.com/tidtulabs/tidtu.git
    cd tidtu
  2. Install all dependencies (từ root của monorepo)

    pnpm install
  3. Change git remote url to avoid accidental pushes to base project

    git remote set-url origin github_username/repo_name
    git remote -v # confirm the changes

(back to top)

Environment Variables

Mỗi app có file .env.example / .dev.vars.example riêng. Cần copy và điền giá trị thật trước khi chạy.

apps/website

cp apps/website/.env.example apps/website/.env
Variable Default Description
VITE_GATEWAY_SERVICE http://localhost:3001 URL tới worker-gateway (local)
VITE_CACHE_SERVICE http://localhost:3000 URL tới worker-cache (local)

apps/worker-gateway

cp apps/worker-gateway/.dev.vars.example apps/worker-gateway/.dev.vars
Variable Description
TURNSTILE_SECRET_KEY Cloudflare Turnstile secret key
DISCORD_WEBHOOK_URL Discord webhook URL (để nhận notification)

Note

Với môi trường production, secrets được set qua wrangler secret put <NAME> thay vì file .dev.vars.

(back to top)

Running Locally

Chạy toàn bộ monorepo (recommended)

Lệnh này khởi động đồng thời tất cả apps (website + workers):

pnpm dev

[!TIP] > pnpm dev tự động kill các port đang dùng (5173, 3000, 3001) trước khi khởi động lại.

Chạy từng app riêng lẻ

App Command Port
website pnpm --filter website dev 5173
worker-cache pnpm --filter worker-cache dev 3000
worker-gateway pnpm --filter worker-gateway dev 3001

Chạy với remote Workers (staging)

pnpm dev:remote

Build production

pnpm build

Lint & Format

pnpm lint
pnpm format

(back to top)


Roadmap

  • Tra cứu lịch thi
  • API Gateway với Cloudflare Workers
  • Bộ nhớ đệm với Cloudflare KV
  • Sao lưu tệp
  • Phân tích tệp
  • Thông báo khi có lịch thi
  • Hỗ trợ đa ngôn ngữ
    • Tiếng Anh

Xem open issues để biết thêm các tính năng đang đề xuất và lỗi đã biết.

(back to top)


Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feat/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feat/AmazingFeature)
  5. Open a Pull Request

Top contributors:

contrib.rocks image

(back to top)


License

Distributed under the MIT License. See LICENSE.txt for more information.

(back to top)


About

Xem danh sánh thi nhanh phòng đào tạo

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages