Skip to main content

How to build a student submission and teacher review portal in Formaloo

A step-by-step guide to building a student assignment portal with role-based access, automated email notifications, and a teacher review pipeline, all in Formaloo, no code required.

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_subjectThe class or subject this assignment belongs to

  • Assignment title — Short text — ID: assignment_titleThe name or title of the assignment being submitted

  • Assignment description — Long text — ID: assignment_descriptionA written description or summary of the work done

  • Upload your assignment — File upload — ID: assignment_fileAttach the assignment file (PDF, DOCX, image, etc.)

  • Student profile — User profile — ID: student_profileLinks this submission to the logged-in student account

  • Teacher score — Number (1–5) — ID: teacher_scoreAdmin only: teacher's score on a scale of 1 to 5

  • Teacher note — Long text — ID: teacher_noteAdmin only: teacher's written feedback on the submission

  • Review status — Dropdown — ID: review_statusAdmin 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.

Did this answer your question?