Logo designed by SAST, created by Maxtune Lee.
SAST Link is a comprehensive personnel management system and OAuth designed to provide a secure and efficient way to manage and authorize access to your applications and services.
Product design in Figma: SAST Link, designed by Maxtune Lee
This repository contains the frontend code for SAST Link. If you're interested in the backend, please visit SAST Link backend.
SAST Link frontend is built with TypeScript and SCSS, and use Next.js as the web framework.
Warning
This repo is under active development! Formats, schemas, and APIs are subject to rapid and backward incompatible changes!
- Node.js >= 20
- pnpm >= 8
To get started, clone the repository and install dependencies with:
git clone https://github.com/NJUPT-SAST/sast-link.git
cd sast-link
pnpm intsall
To start a dev server, run:
pnpm dev
To compile for production deployment, run:
pnpm build
The output will be in the .next
directory, you can run it with:
pnpm start
Enter a shell(zsh) environment with node, pnpm... :
nix develop
Build this project :
nix build
this will create a result
point to nix store path of sast-link
Run :
nix run
or
./result/bin/sast-link
if nix build
before
sast-link
├── app
│ ├── (tourist)
│ │ ├── login
│ │ ├── regist
│ │ └── layout.tsx
│ ├── (user)
│ │ ├── home //用户主页
│ │ └── layout.tsx 布局文件
│ ├── favicon.ico
│ ├── global.scss
│ ├── login.tsx
│ ├── page.module.scss
│ └── layout.tsx
├── components
│ ├── example1
│ │ ├── index.module.scss
│ │ └── index.tsx
│ └── example2
│ ├── index.module.scss
│ └── index.tsx
├── lib
│ ├── apis
│ └── func
├── node_modules
├── public
│ ├── fonts
│ │ └── index.ts
│ └── svg
├── redux
│ ├── features
│ └── index.ts
├── styles
│ ├── globals.scss
│ ├── Home.module.scss
│ ├── Login.module.scss
│ ├── Regist.module.scss
│ └── types.d.ts
├── types
├── next-env.d.ts
├── .eslintrc.json
├── next.config.mjs
├── package.json
├── pnpm-lock.yaml
├── README.md
└── tsconfig.json
The API documentation is available at wiki of the backend
TODO
Goals and Vision for SAST Link (SAST OAuth and SAST Profile):
SAST OAuth serves as a unified identity authentication system for SAST, facilitating login across multiple SAST applications.
Example:
- Simplifies login processes for SAST members across various projects, such as the FreshCup competition.
- Enables seamless login via SAST credentials without the need for separate accounts for each project.
- Allows SAST lecturers to access and manage the FreshCup competition system for tasks like grading via SAST login.
- Offers multiple login options including SAST Feishu, PassKey, QQ, Github, etc., providing users with convenience and flexibility.
- Implements additional security measures like F2A and security keys to enhance account security.
In login process, users can choose to log in in multiple ways: SAST Feishu, PassKey, QQ, Github, etc. As long as they have been bound in advance, they can use third-party login, which is convenient and fast. They can also use F2A, security keys, and other methods to enhance account security.
SAST Profile acts as a centralized user profile system for managing user information and settings within SAST applications.
Features:
- Records basic user information such as SAST membership status, current position, department, group affiliation, etc.
- Tracks user activities within SAST, including competition results, awards, and permissions across various applications.
- Provides users with the ability to customize and share their profile page, allowing them to control the visibility of their information.
Pull requests and any feedback are welcome. For major changes, please open an issue first to discuss what you would like to change.
Warning
Prior to submitting a pull request, please ensure that your code is properly formatted, linted and builds successfully.