PlACo 用户文档
PlACo Document
Introduction
- PlACo (Platform of Assignment and Coding) is an integrated platform with a streamlined user interface
- Our design combines the functions of Blackboard(an assignment submission platform) and Online Judge(a programming judge platform)
- Our supported functions include (details seen in Usage):
- Customized settings
- Assignment submission
- Programming problem submission
- Online judge
Installation
By source code
- Clone frontend source code
1 | git clone [repo-address] -b frontend/main |
- Install necessary packages
1 | npm install |
- Run in develop mode
1 | npm run dev |
- Build the project (or you can run it in a Docker container)
- we use normal next.js framework, so you can view next.js deployment for this deployment
Usages
Login
- In
Login
page, users can input Username and Password for login. - If you are a new user, feel free to sign in via Github, and we will register a new user for you!

Users
Intro
- Users have normal authority in PlACo. Also, they may have different authorities according to their
role
in a specific course

Schedule and Settings
- There is a
Tab
at the Header of 🏠main page (after you login). Click theSchedule
to enter 📆schedule page. - You can check all the upcoming assignments of all courses that you attend in a table.
- There is a button “View Calendar” to see the assignment DDL in a calendar.
- There is a button “Add Entry” that you can add your own schedule
- Input entry’s name and due time to create a new entry
- There is a
Menu
at the up-right of main page. Click theSetting
to enter setting page - You can change your
username
andpassword
of your account. Just input a new one and clickupdate
. - There is a switch that you can turn to dark mode. The default mode is light, but we will keep your customized setting.
Course Intructor
🖋️ IMPORTANT! In a specific course, you will have a “role”, a teacher (
INSTRUCTOR
) or a student (STUDENT
).🖋️ IMPORTANT! Your role is specified by the administrater, and you can view your role of a course on the “course card” in 🏠main page.
- If you are INSTRUCTOR of a course, you can create assignments (following steps) at the first page you enter a course.
- Click the
Create Assignment
button - Input all necessary items (e.g. assignment title, type, due date, full mark and max attempts)
- you can set assignment type to
TEXT
orCODE
. You are given different operations on different mode.
- you can set assignment type to
- You can submit files as assignment documents, you can also add document after create this assignment.
- You can enable OCR service to check students submission after convert them from hand-written version to type-version.
- Click the
- A navbar is offered to select assignment that you can view details and operate.
- For a TEXT assignment, you can:
- click
Modify
button to change publish time, due time, full mark and enable-OCR state. - preview your submitted documents by clicking
Preview
button of each file - click
Add documents
orDelete documents
to add or delete document files. - 🖋️ IMPORTANT! check students’ submissions information:
- click link
View Details
to preview files that students submit (if exists) - input scores and click
save
button to score for this submission - click
Publish Scores
to make them available to students if Due time is expired and all students’ submissions are scored.
- click link
- click
- For a CODE assignment, you can:
- also modify assignment information and add/delete documents
- You can add testcases by clicking
Add Testcases
button:- then set all necessary configuration of a testcase (detailed description inside this page)
- you can upload an input file and an expected output file as “testcase”
- then add this testcase to the testcase list (you can add multiple testcases!)
- at last, you can click
Confirm All
to upload all testcases at a time
- You can click
View Testcases
button to delete a testcase or view details like:- CPU time limit, global time limit, memory limit, stack limit
- Input file content, output file content, enabled attributes
- there is also a table showing students’ submissions. You can view files that students submit, BUT you can’t score because we have a judge service to score it automatically.

Course Student
- As a student in a course, you can submit assignment or code and check out your scores.
- For a TEXT assignment, you can:
- click
Pick files
to upload file for a submission - this page will only show your latest submission (view submit time on the right)
- You can view your score if teacher publish it. (on the right)
- click
- For a CODE assignment, you can:
- click
Pick files
and Choose programming language to make submission - this page will show all your submissions ordered by submit time (desc.)
- you can click link
View Details
to see each of your submissions and check results of all testcases (if exists)
- click
Code assighments are judged by auto service, so you MUST choose programming language before submitting

Administrater
Intro
- ADMINs have all authority that users have. And they also have authority to register new users and new courses.
- Compared to Users, administraters have 2 more tabs on hearder.

Manage Courses
- Click
Courses
tab to manage courses - You can:
- click one existed course to add/delete members as instructor/student (all enable to search and choose)
- click
Create Course
button to create new course- You can initialize course attributes (name, instructors, students) to create one single course
- You can also upload a CSV file in formal format & order to create multiple courses.
Manage Users
- Click
Users
tab to manage users - You can:
- check a user’s information and deactivate it (after that, this user cannot login)
- register a new user by clicking
New
button:- You can initialize user attributes (email, username, password, role) to create one single user
- You can also upload a CSV file in formal format & order to create multiple users.
Contributing
Contributors
-
Now our group have 4 members: fest6, LatiosInAltoMare, zxx3312, HQJ2221.
-
Two of us working for backend, and the other two for frontend. We all do part of testing, and our PM complete deployment.
-
If you want to contribute to our code, please refer to Developer Document(wait for publishment).
License
MIT License