StuSpace là workspace học tập dành cho sinh viên HCMUT, giúp gom các nhu cầu thường ngày vào một nơi: thời khóa biểu, lịch thi, CTĐT, GPA, roadmap học tập, ĐKMH, lịch giảng dạy và LMS.
- Thời khóa biểu cá nhân với dữ liệu MyBK và trải nghiệm xem lịch tối ưu cho cả desktop lẫn mobile
- Tin nhắn LMS và deadline LMS ngay trong app, có cache để dùng ổn định hơn
- Roadmap học tập để tự lên kế hoạch từng học kỳ, đặt aim GPA và ghi chú môn học
- CTĐT, GPA, ĐKMH và các tiện ích học tập khác trong cùng một giao diện
Yêu cầu:
- Node.js 18+
- npm
- Redis nếu muốn chạy đầy đủ các flow backend/login/cache
Cài dependencies:
npm install
npm --prefix server installTạo server/.env:
NODE_ENV=development
PORT=3001
REDIS_URL=redis://localhost:6379
CREDENTIALS_ENCRYPTION_KEY=<64-char-hex-string>
UPSTASH_DAILY_COMMAND_LIMIT=10000Tạo key mã hóa:
node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"Chạy local:
npm run dev:allMặc định:
- Frontend:
http://localhost:5173 - Backend:
http://localhost:3001
Nếu cần chạy riêng:
npm run dev:web
npm run dev:servernpm run dev: chạy Vite dev servernpm run dev:web: chạy frontendnpm run dev:server: chạy backendnpm run dev:all: chạy frontend + backend cùng lúcnpm run lint: lint toàn bộ source đang activenpm run test:server: chạy test backendnpm run build: build production cho frontend
src/app: app shell, menu config, tab registrysrc/features: các feature chính như Messages, Roadmap, Curriculum, Registration, Deadlinessrc/shared: shared UI, hooks, libserver: backend Expresspublic: static assets
Backend production có thể serve trực tiếp frontend từ dist/. File render.yaml là điểm bắt đầu tốt nếu bạn muốn deploy toàn app như một web service Node.
docs/DEPLOYMENT.md: deployment overview chungdocs/RENDER-DEPLOY.md: hướng dẫn deploy nhanh lên Renderdocs/REFACTOR_PROGRESS.md: trạng thái refactor đã hoàn thànhdocs/NEXT_REFACTOR_ROADMAP.md: các bước cleanup tiếp theo sau khi kiến trúc mới đã ổn địnhdocs/OFFLINE_PWA_PLAN.md: kế hoạch đưa app tới mức offline-ready an toàn
Trước khi commit, nên chạy:
npm run lint
npm run build
npm run test:serverTiến độ refactor hiện được ghi tại docs/REFACTOR_PROGRESS.md.