2
Autograding tool (lemmy.world)

Hi, I teach a CS course, and I was wondering if there is a practical way in which to setup a server that would accept student's tar files, run some tests, and show them the results.

I could go "full unix mode" and roll up some accounts let them ssh into a server, scp their their files.... but I was wondering if there is a prepacked solution for this that is nicer to the eye. And I thought maybe you know some.

top 7 comments
sorted by: hot top controversial new old
[-] EarMaster@lemmy.world 1 points 4 months ago

You could use automated testing tools to do the work for you. You define your requirements as individual tests and every input is tested separately giving you a report which tests failed and which succeeded.

[-] i_am_not_a_robot@discuss.tchncs.de 1 points 4 months ago

That sounds like build automation. You can use some Git forge software.

[-] scrubbles@poptalk.scrubbles.tech 1 points 4 months ago

Did a takehome for a company recently that did it well. They required that I make a docker file (you could give them one if you wanted) where when ran it would run tests. It was a neat use of docker IMO, it standardized that builds were just "build the docker file" and running was just "run the dockerfile". You would t have to deal with tar or anything then.

Thousand ways to skin a cat there

[-] foggy@lemmy.world 1 points 4 months ago* (last edited 4 months ago)

Why give your students a way to get RCE on your institutions servers through anything less than perfect file upload implementation.

For a .tar? I wish you the best...

Instead of that, simplify.

Use unique salts for each assignment per student.

Align hashes with those salts to check the outcome for each students assignment.

Literally have them send you a CTF style sha256 string.

Do it step by step where each step doesn't depend on the next, grade as a percentage of flags accurately procured.

[-] dotdi@lemmy.world 1 points 4 months ago

Absolutely this. Even if you had fancy jails or docker setups for each submission, this will be a nightmare to properly handle. Students DOSing each other exactly before the submission deadline, too.

[-] foggy@lemmy.world 1 points 4 months ago* (last edited 4 months ago)

I mean just for the love of God don't spin up something on your company's infrastructure that accepts file uploads.

Just don't.

If you're reading this and going "well, it's just internal," or "well, it doesn't do much it just accepts this exact file type." My god. Ask your CISA. And if they're okay with it, cool. That's on them.

Unless your whole business is transferring files, don't. And even then... Don't.

And if you're still confused, the answer is to use another company's infrastructure for this. Use Azure. Use AWS. Use Google cloud or even g suites. Don't accept that liability. Let the trillionaires do it.

[-] PeriodicallyPedantic@lemmy.ca 1 points 4 months ago

This is basically what CI/CD pipelines do.

Compile the code, run tests, run static analysis. If results pass, submit the code. If results fail, reject it with an explanation.

Idk the details of how you'd implement this for a class, without letting everyone see eachother's completed work, but I'm sure it could be done.

this post was submitted on 25 Oct 2025
2 points (100.0% liked)

Selfhosted

57630 readers
202 users here now

A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.

Rules:

  1. Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.

  2. No spam posting.

  3. Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it's not obvious why your post topic revolves around selfhosting, please include details to make it clear.

  4. Don't duplicate the full text of your blog or github here. Just post the link for folks to click.

  5. Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).

  6. No trolling.

  7. No low-effort posts. This is subjective and will largely be determined by the community member reports.

Resources:

Any issues on the community? Report it using the report flag.

Questions? DM the mods!

founded 2 years ago
MODERATORS