ESP32-S3 Bench Guide
ESP32‑S3 N16R8 벤치 가이드: 실시간 핀아웃, 강의, 시뮬레이터 및 벤치 로그
TimeCalendar는 대학 시간표를 확인하고 강의 변경 시 알림을 받아볼 수 있는 새로운 비서입니다
Consultez votre emploi du temps universitaire et recevez des notifications lors de modifications de cours grâce à votre nouvel assistant.
교육TypeScript · DartGitHub @timecalendar온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기TimeCalendar gives you easy access to your university timetable.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
To start working on TimeCalendar, you must first install Docker.
Once Docker is installed, start the dev-env services (Postgres, Redis, and an
nginx TLS proxy) in the background from the repository root:README 전문 보기 ↗To start working on TimeCalendar, you must first install Docker.
Once Docker is installed, start the dev-env services (Postgres, Redis, and an nginx TLS proxy) in the background from the repository root:
bin/server-compose.sh up -d
The wrapper keeps the main checkout's historical server Compose project and
gives each worktree its own project, network, containers, and named volumes. The
default URLs remain https://api.timecalendar.host:1443, Postgres on
localhost:37291, Redis on 127.0.0.1:37292, and the separately started NestJS
server on http://localhost:3005. The self-signed TLS certificate the proxy
serves is generated on first use and is not committed — see
the dev TLS certificate.
Choose unoccupied host ports for another worktree with shell-scoped overrides:
TIMECALENDAR_TLS_PORT=24443 TIMECALENDAR_POSTGRES_PORT=47291 \
TIMECALENDAR_REDIS_PORT=47292 bin/server-compose.sh up -d
Generation and server tests do not need nginx. Start only their dependencies:
bin/server-compose.sh up -d postgres redis
With alternate ports, pass the same ports to the test-profile server command:
TIMECALENDAR_POSTGRES_PORT=47291 TIMECALENDAR_REDIS_PORT=47292 \
bin/server-compose.sh up -d postgres redis
cd server
DATABASE_URL=postgres://postgres@localhost:47291/timecalendar_test \
REDIS_URL=redis://127.0.0.1:47292 npm run generate:openapi
TimeCalendar is written in TypeScript and runs with Node.js. Install Node.js on your environment.
Once Node.js is installed, install npm dependencies:
npm install
Copy the file server/.env.sample to a new file named server/.env. In
development most values already have sensible defaults (see
server/src/config/environments/development.ts), so this file only needs
NODE_ENV=development.
A git worktree only checks out tracked files, so the gitignored files a working
checkout needs — server/.env, web/.env.local, the Firebase key, the generated
husky helper .husky/_/, and node_modules — are all absent in a fresh worktree
(no pre-commit hook runs there at all, silently). Run this first in every
new worktree to symlink the shared secrets from your main checkout and install
dependencies:
npm run setup:worktree
It is idempotent and a no-op in the main checkout.
TimeCalendar uses Firebase to send push notifications and save application settings. You can either use the private development Firebase account or create your own.
Create your own service account key
On the Firebase Console, create your own application. Go into your Project settings > Your apps and create a web application. Then, go in the Service accounts tab, and click on "Generate new private key", it will download a file. Copy it into server/config/serviceAccountKey.json.
You also need to create a Firestore Database. In the left bar, click on Firestore Database, then on "Create database". Select "Start in test mode", then "Next". Select any region for the Firestore location (you can select the nearest, eur3), then click on "Enable".
To start the server, run the following command:
cd server && npm run dev
The React Native (Expo) app lives in mobile/ — see the
mobile README for the toolchain (Node 24, JDK 17, Android
SDK, Xcode), the dev-client build, and how to point a physical device at the
server started above on :3005. It is a standalone npm project with its own
npm install; the Architecture Book is at
docs/mobile/architecture-book/.
The legacy Flutter app lives in app/. To run it against this local
dev env (e.g. on an iOS simulator), first run npm run setup to wire up the
/etc/hosts entries, web/.env.local, and the simulator's trusted dev cert
(the cert step is macOS-only; the hosts step needs sudo — a physical Android
device needs neither, it reaches the server over adb reverse), then follow the
app README.
To run tests:
npm run test
Run all commands in the server folder.
Migrations do not run automatically in development (RUN_MIGRATIONS=false), so
run them manually after starting the Docker stack and before starting the server.
Create a migration
npm run db:generate
Run migrations
npm run db:migrate
The dev database starts empty (the schools list is empty until seeded). Load the
fixture data (schools, school groups) from the server folder:
npm run db:seed
Use npm run db:init to drop the database, re-run migrations, and reseed from
scratch.