What you'll build
By the end of this guide, you'll have a fully functional student portal where students submit assignments, teachers review and score them, and automated email notifications keep everyone in the loop. The portal has role-based access — students only see their own submissions, while teachers get a Kanban pipeline view to track all assignments by review status. No code required.
When to use this
You manage assignment submissions manually and want one organized system to replace scattered emails and shared drives
You need teachers to score and leave notes on student work, with students automatically notified when feedback is ready
You want students to log in, submit work, and view only their own submissions — not everyone else's
You're running an online course, training program, or classroom and need a structured review workflow
You want to avoid re-collecting the same student info (name, email) on every form submission
Step 1: Make the form
Start by creating the form that students will use to submit their work and teachers will use to review it.
1.1. Create a new project
From your Formaloo dashboard, click Magic create, paste in your prompt describing the assignment portal, and let Formaloo generate the initial form structure for you.
1.2. Add the following fields to your form
Open the form editor and verify or add each field below. For detailed instructions on any field type, see Form editor and field types.
Class / Subject — Dropdown — ID:
class_subject— The class or subject this assignment belongs toAssignment title — Short text — ID:
assignment_title— The name or title of the assignment being submittedAssignment description — Long text — ID:
assignment_description— A written description or summary of the work doneUpload your assignment — File upload — ID:
assignment_file— Attach the assignment file (PDF, DOCX, image, etc.)Student profile — User profile — ID:
student_profile— Links this submission to the logged-in student accountTeacher score — Number (1–5) — ID:
teacher_score— Admin only: teacher's score on a scale of 1 to 5Teacher note — Long text — ID:
teacher_note— Admin only: teacher's written feedback on the submissionReview status — Dropdown — ID:
review_status— Admin only: tracks the review stage (Not reviewed / In review / Reviewed and scored)
1.3. Set up the Student profile field with auto-fill
The User profile field connects each submission to the student's account. To save students from re-entering their name and email on every submission, set up auto-fill:
Click on the Student profile field to open its settings
Select your student user directory
Under User profile fields (Autofill), add the fields for name and email address
This pulls their details automatically when they're logged in. For a full walkthrough, see How to edit the user directory form and add custom fields to the user profile and How to create a Memory Form that auto-fills user details.
Step 2: Set the logic for email notifications
Now set up an automated email that fires when a teacher scores an assignment. This uses On Update logic — advanced logic that triggers when a form submission is updated, not just when it's first submitted.
2.1. Open advanced logic:
In the form editor, click the settings panel on the right side. Scroll to Advanced logic, then find the On Update section.
2.2. Add the trigger condition:
Click Add logic and set:
If: Teacher score — is answered
2.3. Set the action:
Set the action to Send email, then configure:
Using: (select or create an email template — see below)
To: Student profile
Subject:
Your assignment has been reviewed — @assignment_title
📖 For a full guide on creating and using custom email templates, see How to send and receive email notifications.
2.4. Create the email template:
In the email template dropdown, scroll to the bottom and click Create new email template. Use the following:
Subject: Your assignment has been reviewed — @assignment_title
Body:
Hi there,
Your teacher has finished reviewing your submission for @assignment_title.
Here's your feedback:
Score: @teacher_score / 5
Teacher's note:
@teacher_note
If you have any questions about your feedback, please reach out to your teacher directly.
Good luck with your next assignment!
The @field_id variables pull live data from the submission using answer piping. For a full reference on supported variables, see How to dynamically pull form data into custom emails, PDFs, and AI prompts. For the complete guide on On Update logic, see What is "On Update" logic and how it works.
💡 Tip: You can build more notification scenarios using the same method. For example: a confirmation email to students when they submit, or a notification to teachers when a new submission comes in. Each is a separate logic rule on the same form. For conditional notifications — where different emails go out based on the score or status — see How to send and receive conditional email notifications.
Step 3: Activate the portal
Now activate the client portal so students and teachers can log in and access their respective views.
3.1. Open portal settings:
Go back to the project dashboard. Click Edit mode, then click the settings icon. Select Activate Client Portal.
3.2. Set up user management:
Click Manage users, then open the Setup wizard. Either create a new user directory or select an existing one.
3.3. Configure portal settings:
In Portal settings, enable:
User login: Allow existing users to log in
User signup: Enable new student registrations
CAPTCHA protection: Prevent bot signups
Password-less login (OTP): Let users sign in with a verification code sent to their email instead of a password
For a full guide on OTP login, see How to apply OTP verification in your form.
3.4. Enable User profile on forms:
Toggle on Enable User profile on forms, then click Finish setup.
For the full portal setup guide, see How to create a portal and manage users' access.
💡 Tip: You can connect a custom domain to your portal. This option is available on the Business plan or via the Brand removal add-on.
Step 4: Set up portal pages
Now build the pages inside the portal — one set for students, one for the teacher.
4.1. Create the Student group:
In the portal sidebar, click the arrow next to New group. Rename the group to Student.
4.2. Add the Submit an assignment page:
Click + inside the Student group, add a new page, and rename it Submit an assignment. On this page, type / and search for Form, then add your assignment form.
4.3. Add the My assignments page:
Add another page inside the Student group and rename it My assignments. Type /, search for Table, and add a table connected to your assignment form.
To make sure each student only sees their own submissions:
Click Options on the table
Click Manage access
Under Form profile field access, add the Student profile field
This filters the table so each logged-in student only sees the rows linked to their own profile. For more on customizing layout and blocks, see Customize your form/app layout and design.
4.4. Create the Teacher group and page:
Using the same steps, create a new group called Teacher. Add one page inside it named All assignments pipeline.
On this page, type /, search for Kanban, and add a Kanban board connected to your assignment form. Set Group by to Review status. Teachers can now drag submissions across columns as they move through the review workflow.
Step 5: Set access control per role
The final step is making sure students only see student pages and teachers only see the teacher page.
5.1. Set access on each page:
Click the three dots next to any page, then click Access.
5.2. Assign roles:
Under External users, select Specific user roles, then assign:
Student pages → Student role
Teacher page → Teacher role
You'll need to have created these two roles in your user directory first. For a full guide on creating and assigning roles, see How to create and assign user roles in your portal. To manage individual user data and roles, see How to edit users' data & roles and How to share app/portal data.
What you've built
You now have a working student assignment and grading portal. Students log in, submit their work through a clean form (with their name and email pre-filled), and see only their own submissions in a personal table. Teachers get a full Kanban pipeline grouped by review status, can score and leave notes directly on each submission, and the student gets an automated email the moment feedback is posted. Everything is role-gated and self-contained.
What's next
This portal is a solid foundation. Here are a few directions you can take it next:
PDF templates: Generate a downloadable, branded feedback report for each submission using Formaloo's PDF template feature.
CC Formaloo: CC a unique Formaloo address in any email thread and let the AI agent extract, fill, and follow up on your form data automatically — useful for teachers or admins who communicate with students over email and want those interactions captured directly in their portal data
Email campaigns: Send batch communications to all students — for announcements, reminders, or end-of-term summaries — directly from Formaloo
More notification scenarios: Add On Update logic to notify the teacher when a new submission arrives, or send students a confirmation email the moment they submit. For conditional notifications based on score or status, see How to send and receive conditional email notifications
Start with a ready-made template
Not starting from scratch. You can use the pre-built Student Assignment & Grading Portal template and have everything set up in minutes — all fields, logic, and portal structure included. Just customize it to fit your setup and you're good to go.
Ready to build this?
💬 Get help from our concierge team
Our team will help you set this up for your specific use case.
📅 Book a demo for Team/Enterprise setup
See how teams use Formaloo at scale with advanced permissions and integrations.

