├── .dockerignore ├── .eslintrc.json ├── .github └── workflows │ └── react.yml ├── .gitignore ├── .prettierignore ├── .prettierrc.json ├── Dockerfile ├── LICENSE ├── README.md ├── jest.config.js ├── jest.setup.js ├── next-env.d.ts ├── next.config.js ├── package.json ├── public ├── favicon.ico └── react.svg ├── src ├── components │ ├── __tests__ │ │ ├── announcement-list.test.tsx │ │ ├── course-detail-card.test.tsx │ │ ├── course-item.test.tsx │ │ └── review-reaction-button.test.tsx │ ├── about-card.tsx │ ├── account-login-form.tsx │ ├── announcement-list.tsx │ ├── contact-email.tsx │ ├── course-detail-card.tsx │ ├── course-filter-card.tsx │ ├── course-item.tsx │ ├── course-list.tsx │ ├── email-login-form.tsx │ ├── email-password-login-form.tsx │ ├── icon-text.tsx │ ├── image-promotion.tsx │ ├── layouts.tsx │ ├── md-editor.tsx │ ├── md-preview.tsx │ ├── navbar.tsx │ ├── page-header.tsx │ ├── promotion-card.tsx │ ├── related-card.tsx │ ├── report-list.tsx │ ├── report-modal.tsx │ ├── reset-password-form.tsx │ ├── review-filter.tsx │ ├── review-item.tsx │ ├── review-list.tsx │ ├── review-rating-trend.tsx │ ├── review-reaction-button.tsx │ └── review-revision-modal.tsx ├── config │ ├── config.ts │ └── touchpoint.ts ├── lib │ ├── context.ts │ ├── models.ts │ └── utils.ts ├── pages │ ├── 404.tsx │ ├── _app.tsx │ ├── _document.tsx │ ├── about.tsx │ ├── activity.tsx │ ├── course │ │ └── [id].tsx │ ├── courses.tsx │ ├── faq.tsx │ ├── follow-course.tsx │ ├── follow-review.tsx │ ├── latest.tsx │ ├── login.tsx │ ├── point.tsx │ ├── preference.tsx │ ├── report.tsx │ ├── review │ │ └── [id].tsx │ ├── search.tsx │ ├── statistics.tsx │ ├── sync.tsx │ └── write-review.tsx ├── services │ ├── announcement.ts │ ├── common.ts │ ├── course.ts │ ├── promotion.ts │ ├── report.ts │ ├── request.ts │ ├── review.ts │ ├── semester.ts │ ├── statistic.ts │ ├── sync.ts │ └── user.ts └── styles │ ├── custom.ant.css │ └── global.css ├── tsconfig.json └── yarn.lock /.dockerignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SJTU-jCourse/jcourse/HEAD/.dockerignore -------------------------------------------------------------------------------- /.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["next/core-web-vitals", "prettier"] 3 | } 4 | -------------------------------------------------------------------------------- /.github/workflows/react.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SJTU-jCourse/jcourse/HEAD/.github/workflows/react.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SJTU-jCourse/jcourse/HEAD/.gitignore -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | # Ignore artifacts: 2 | build 3 | coverage 4 | .next 5 | .swc 6 | styles -------------------------------------------------------------------------------- /.prettierrc.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SJTU-jCourse/jcourse/HEAD/.prettierrc.json -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SJTU-jCourse/jcourse/HEAD/Dockerfile -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SJTU-jCourse/jcourse/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SJTU-jCourse/jcourse/HEAD/README.md -------------------------------------------------------------------------------- /jest.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SJTU-jCourse/jcourse/HEAD/jest.config.js -------------------------------------------------------------------------------- /jest.setup.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SJTU-jCourse/jcourse/HEAD/jest.setup.js -------------------------------------------------------------------------------- /next-env.d.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SJTU-jCourse/jcourse/HEAD/next-env.d.ts -------------------------------------------------------------------------------- /next.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SJTU-jCourse/jcourse/HEAD/next.config.js -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SJTU-jCourse/jcourse/HEAD/package.json -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SJTU-jCourse/jcourse/HEAD/public/favicon.ico -------------------------------------------------------------------------------- /public/react.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SJTU-jCourse/jcourse/HEAD/public/react.svg -------------------------------------------------------------------------------- /src/components/__tests__/announcement-list.test.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SJTU-jCourse/jcourse/HEAD/src/components/__tests__/announcement-list.test.tsx -------------------------------------------------------------------------------- /src/components/__tests__/course-detail-card.test.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SJTU-jCourse/jcourse/HEAD/src/components/__tests__/course-detail-card.test.tsx -------------------------------------------------------------------------------- /src/components/__tests__/course-item.test.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SJTU-jCourse/jcourse/HEAD/src/components/__tests__/course-item.test.tsx -------------------------------------------------------------------------------- /src/components/__tests__/review-reaction-button.test.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SJTU-jCourse/jcourse/HEAD/src/components/__tests__/review-reaction-button.test.tsx -------------------------------------------------------------------------------- /src/components/about-card.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SJTU-jCourse/jcourse/HEAD/src/components/about-card.tsx -------------------------------------------------------------------------------- /src/components/account-login-form.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SJTU-jCourse/jcourse/HEAD/src/components/account-login-form.tsx -------------------------------------------------------------------------------- /src/components/announcement-list.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SJTU-jCourse/jcourse/HEAD/src/components/announcement-list.tsx -------------------------------------------------------------------------------- /src/components/contact-email.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SJTU-jCourse/jcourse/HEAD/src/components/contact-email.tsx -------------------------------------------------------------------------------- /src/components/course-detail-card.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SJTU-jCourse/jcourse/HEAD/src/components/course-detail-card.tsx -------------------------------------------------------------------------------- /src/components/course-filter-card.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SJTU-jCourse/jcourse/HEAD/src/components/course-filter-card.tsx -------------------------------------------------------------------------------- /src/components/course-item.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SJTU-jCourse/jcourse/HEAD/src/components/course-item.tsx -------------------------------------------------------------------------------- /src/components/course-list.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SJTU-jCourse/jcourse/HEAD/src/components/course-list.tsx -------------------------------------------------------------------------------- /src/components/email-login-form.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SJTU-jCourse/jcourse/HEAD/src/components/email-login-form.tsx -------------------------------------------------------------------------------- /src/components/email-password-login-form.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SJTU-jCourse/jcourse/HEAD/src/components/email-password-login-form.tsx -------------------------------------------------------------------------------- /src/components/icon-text.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SJTU-jCourse/jcourse/HEAD/src/components/icon-text.tsx -------------------------------------------------------------------------------- /src/components/image-promotion.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SJTU-jCourse/jcourse/HEAD/src/components/image-promotion.tsx -------------------------------------------------------------------------------- /src/components/layouts.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SJTU-jCourse/jcourse/HEAD/src/components/layouts.tsx -------------------------------------------------------------------------------- /src/components/md-editor.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SJTU-jCourse/jcourse/HEAD/src/components/md-editor.tsx -------------------------------------------------------------------------------- /src/components/md-preview.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SJTU-jCourse/jcourse/HEAD/src/components/md-preview.tsx -------------------------------------------------------------------------------- /src/components/navbar.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SJTU-jCourse/jcourse/HEAD/src/components/navbar.tsx -------------------------------------------------------------------------------- /src/components/page-header.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SJTU-jCourse/jcourse/HEAD/src/components/page-header.tsx -------------------------------------------------------------------------------- /src/components/promotion-card.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SJTU-jCourse/jcourse/HEAD/src/components/promotion-card.tsx -------------------------------------------------------------------------------- /src/components/related-card.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SJTU-jCourse/jcourse/HEAD/src/components/related-card.tsx -------------------------------------------------------------------------------- /src/components/report-list.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SJTU-jCourse/jcourse/HEAD/src/components/report-list.tsx -------------------------------------------------------------------------------- /src/components/report-modal.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SJTU-jCourse/jcourse/HEAD/src/components/report-modal.tsx -------------------------------------------------------------------------------- /src/components/reset-password-form.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SJTU-jCourse/jcourse/HEAD/src/components/reset-password-form.tsx -------------------------------------------------------------------------------- /src/components/review-filter.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SJTU-jCourse/jcourse/HEAD/src/components/review-filter.tsx -------------------------------------------------------------------------------- /src/components/review-item.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SJTU-jCourse/jcourse/HEAD/src/components/review-item.tsx -------------------------------------------------------------------------------- /src/components/review-list.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SJTU-jCourse/jcourse/HEAD/src/components/review-list.tsx -------------------------------------------------------------------------------- /src/components/review-rating-trend.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SJTU-jCourse/jcourse/HEAD/src/components/review-rating-trend.tsx -------------------------------------------------------------------------------- /src/components/review-reaction-button.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SJTU-jCourse/jcourse/HEAD/src/components/review-reaction-button.tsx -------------------------------------------------------------------------------- /src/components/review-revision-modal.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SJTU-jCourse/jcourse/HEAD/src/components/review-revision-modal.tsx -------------------------------------------------------------------------------- /src/config/config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SJTU-jCourse/jcourse/HEAD/src/config/config.ts -------------------------------------------------------------------------------- /src/config/touchpoint.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SJTU-jCourse/jcourse/HEAD/src/config/touchpoint.ts -------------------------------------------------------------------------------- /src/lib/context.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SJTU-jCourse/jcourse/HEAD/src/lib/context.ts -------------------------------------------------------------------------------- /src/lib/models.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SJTU-jCourse/jcourse/HEAD/src/lib/models.ts -------------------------------------------------------------------------------- /src/lib/utils.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SJTU-jCourse/jcourse/HEAD/src/lib/utils.ts -------------------------------------------------------------------------------- /src/pages/404.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SJTU-jCourse/jcourse/HEAD/src/pages/404.tsx -------------------------------------------------------------------------------- /src/pages/_app.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SJTU-jCourse/jcourse/HEAD/src/pages/_app.tsx -------------------------------------------------------------------------------- /src/pages/_document.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SJTU-jCourse/jcourse/HEAD/src/pages/_document.tsx -------------------------------------------------------------------------------- /src/pages/about.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SJTU-jCourse/jcourse/HEAD/src/pages/about.tsx -------------------------------------------------------------------------------- /src/pages/activity.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SJTU-jCourse/jcourse/HEAD/src/pages/activity.tsx -------------------------------------------------------------------------------- /src/pages/course/[id].tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SJTU-jCourse/jcourse/HEAD/src/pages/course/[id].tsx -------------------------------------------------------------------------------- /src/pages/courses.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SJTU-jCourse/jcourse/HEAD/src/pages/courses.tsx -------------------------------------------------------------------------------- /src/pages/faq.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SJTU-jCourse/jcourse/HEAD/src/pages/faq.tsx -------------------------------------------------------------------------------- /src/pages/follow-course.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SJTU-jCourse/jcourse/HEAD/src/pages/follow-course.tsx -------------------------------------------------------------------------------- /src/pages/follow-review.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SJTU-jCourse/jcourse/HEAD/src/pages/follow-review.tsx -------------------------------------------------------------------------------- /src/pages/latest.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SJTU-jCourse/jcourse/HEAD/src/pages/latest.tsx -------------------------------------------------------------------------------- /src/pages/login.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SJTU-jCourse/jcourse/HEAD/src/pages/login.tsx -------------------------------------------------------------------------------- /src/pages/point.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SJTU-jCourse/jcourse/HEAD/src/pages/point.tsx -------------------------------------------------------------------------------- /src/pages/preference.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SJTU-jCourse/jcourse/HEAD/src/pages/preference.tsx -------------------------------------------------------------------------------- /src/pages/report.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SJTU-jCourse/jcourse/HEAD/src/pages/report.tsx -------------------------------------------------------------------------------- /src/pages/review/[id].tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SJTU-jCourse/jcourse/HEAD/src/pages/review/[id].tsx -------------------------------------------------------------------------------- /src/pages/search.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SJTU-jCourse/jcourse/HEAD/src/pages/search.tsx -------------------------------------------------------------------------------- /src/pages/statistics.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SJTU-jCourse/jcourse/HEAD/src/pages/statistics.tsx -------------------------------------------------------------------------------- /src/pages/sync.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SJTU-jCourse/jcourse/HEAD/src/pages/sync.tsx -------------------------------------------------------------------------------- /src/pages/write-review.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SJTU-jCourse/jcourse/HEAD/src/pages/write-review.tsx -------------------------------------------------------------------------------- /src/services/announcement.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SJTU-jCourse/jcourse/HEAD/src/services/announcement.ts -------------------------------------------------------------------------------- /src/services/common.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SJTU-jCourse/jcourse/HEAD/src/services/common.ts -------------------------------------------------------------------------------- /src/services/course.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SJTU-jCourse/jcourse/HEAD/src/services/course.ts -------------------------------------------------------------------------------- /src/services/promotion.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SJTU-jCourse/jcourse/HEAD/src/services/promotion.ts -------------------------------------------------------------------------------- /src/services/report.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SJTU-jCourse/jcourse/HEAD/src/services/report.ts -------------------------------------------------------------------------------- /src/services/request.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SJTU-jCourse/jcourse/HEAD/src/services/request.ts -------------------------------------------------------------------------------- /src/services/review.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SJTU-jCourse/jcourse/HEAD/src/services/review.ts -------------------------------------------------------------------------------- /src/services/semester.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SJTU-jCourse/jcourse/HEAD/src/services/semester.ts -------------------------------------------------------------------------------- /src/services/statistic.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SJTU-jCourse/jcourse/HEAD/src/services/statistic.ts -------------------------------------------------------------------------------- /src/services/sync.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SJTU-jCourse/jcourse/HEAD/src/services/sync.ts -------------------------------------------------------------------------------- /src/services/user.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SJTU-jCourse/jcourse/HEAD/src/services/user.ts -------------------------------------------------------------------------------- /src/styles/custom.ant.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SJTU-jCourse/jcourse/HEAD/src/styles/custom.ant.css -------------------------------------------------------------------------------- /src/styles/global.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SJTU-jCourse/jcourse/HEAD/src/styles/global.css -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SJTU-jCourse/jcourse/HEAD/tsconfig.json -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SJTU-jCourse/jcourse/HEAD/yarn.lock --------------------------------------------------------------------------------