With repl.it's Classrooms feature being disabled on the 31st Jan 2021, schools are now required to pay $1000 dollars a year for something which they used to use for free!
This is a replacement for repl.it's classrooms feature now that it has been shut down. It uses replauth and embed repls for the assignments, so is still based heavily around repl.it.
On the landing page click the Create
button towards the top of the page. This will allow you to then input the name, language, description, and icon for the classroom.
When viewing the classroom's tecaher page (at /classroom/<classroom_id>/teachers
) click the Edit
button. This will present you with the form to edit your classroom name, description, and icon.
When viewing the classroom's tecaher page (at /classroom/<classroom_id>/teachers
) click the Clone
button. This will present you with the form to clone your classroom. You can change the classroom name, description, and icon. Cloning a classroom will copy all the assignments over into a new classroom (with modal answers). Students (and their submissions) and teachers will not be transfered to the new classroom.
When viewing the classroom's tecaher page (at /classroom/<classroom_id>/teachers
) click the Delete
button. Only the classroom owner can perform this action.
Once a classrooms is created, you will be taken to the teachers page for it. The teachers page is at /classroom/<classroom_id>/teachers
. Here you have the buttons to edit the classroom info (name, description, etc.), add students, and add teachers. It also shows the overview of students and their progress throughout each assignment.
When you click the Invite More
button for either students or teachers, it will present you with three options:
- Invite a user by their repl.it username
- Copy an invite link to send to people that you wish to have in your classroom
- Copy an invite code to be entered on the landing page by people you wish to have in your classroom
The only way to join a classroom is through being invited. There are different actions to be taken depending on what type of invite you received:
- Invited by username: An invite will appear on the landing page for you to either accept or deny
- Invite link: Simply follow the link
- Invite code: Enter the code on the landing page in the
Enter code
box
Go to the teachers page and click the X
next to the student or teacher that you wish to remove. Only the owner of the classroom can remove other teachers.
Go to your classroom page (by either clicking on it from the landing page or just going to /classroom/<classroom_id>
). Click the Create
button and then enter the name and instructions. This will then show you the page where you can see the general overview of students progress in that assignment.
When viewing the assignment (at /classroom/<classroom_id>/<assignment_id>
) click the Edit
button. This will present you with the form to edit your assignment name and instructions.
When viewing the assignmentr page (at /classroom/<classroom_id>/<assignment_id>
) click the Delete
button.
Go to your classroom page (by either clicking on it from the landing page or just going to /classroom/<classroom_id>
). You will see a list of assignments. Click on one that you wish to work on. You will need to then create a repl, and then enter it's url into the box asking for it (only once). This will then embed that repl into that page for you to work on. The Instructions will be on the right side.
Once you have completed the task, you can click the Submit
in the top right corner of the page. This will allow your teacher to give feedback on your submission. If you feel as though you have missed something, you can unsubmit the assignment using the Unsubmit
button which will appear.
After your teacher has returned your submission, you can view their feedback, and make any changes that are necessary. If you make some changes, you can click the Resubmit
button which will send it back to your teacher for remarking.
When viewing the assignment overview, you can click on a student, and it will take you to the page which shows their repl.
Once a student has submitted their assignment (shown as the awaiting feedback
status), you will be able to give feedback on it by clicking the student in the assignment overview page, and writing your feedback in the bottom right box and then click the Send feedback
button. You can edit this feedback by simply editing what you have written in the box and clicking the Send feedback
button again.
If you really want to host a clone of this rather than using https://classrooms.codingcactus.repl.co you will need 4 things.
- Repl.it account
- MongoDB Atlas account
- Cloudinary account
- Uptime Robot account (or any pinging service)
This will cover everything assuming that you have never used any of the services. So if you have already got accounts etc. then you will be able to skip a few steps.
- Sign up at https://repl.it/signup
- Click this:
- Put
python main.py
in the empty box in the top right - Press the Done button in the box that appears on the top right quarter of the screen
- Create a file clalled exactly
.env
- Sign up at https://account.mongodb.com/account/register
- Create a new project
- Create a cluster
- Choose a plan that you want (free plan will work fine)
- Leave the settings as they are
- Click create cluster
- Click the Database Access button in the sidebar
- Add a new database user
- Give it a name
- Give it a password
- Copy the password
- Give it the Atlas Admin role
- Add User
- Go back to the clusters page
- Click connect
- Click Allow access from anywhere
- CLick Add IP Address
- Add the database user that you just created
- Click Choose Connection Method
- Click the bottom option
- Copy the url from part 2
- Add
mongouri=yoururl
to the.env
file in your repl, but replaceyoururl
with the url from the previous step. Replace the<password>
with the password of the database user (from earlier)
- Sign up at https://cloudinary.com/users/register/free
- Look at the account details section at the top of the dahsboard page
- Add
CLOUDINARY_CLOUD_NAME=abcdef
to the.env
file in your repl, but replaceabcdef
with your cloudinary cloud name - Add
CLOUDINARY_API_KEY=1234546
to the.env
file in your repl, but replace123456
with your cloudinary api key - Add
CLOUDINARY_API_SECRET=asdf
to the.env
file in your repl, but replaceasdf
with your cloudinary api secret
- Sign up at https://uptimerobot.com/signUp
- Add a http moniter pointing at the repl.co url for your repl (
https://replname.username.repl.co
)
Press the run button on your repl
You can view what else is planned in roadmap.md