Simple learning management system (LMS) built via the Flask Framework.
Educa gives instructors the ability to create courses which allows them to keep track of grades & assignments for their students as well as keep an open communication channel with them using the inbox feature.
Demo: https://educa-lms.herokuapp.com
An account must be registered to access the dashboard.
Note that instructor accounts are limited to creating four courses and twenty assignments per course. File upload for instruction assignments & for profile pictures is also disabled as this is a demo.
Course ID: 1
Course PW: 1234
Open your terminal and change to the directory that you wish to create the project in then type:
git clone https://github.com/javierpelayo/educa.git
cd educa
python3 -m venv <env_name>
. <envname>/bin/activate
pip3 install -r requirements.txt
After doing this go to the root directory and open up your bash profile (ex: .zprofile on mac) and copy and paste the following:
export FLASK_APP='run'
export SECRET_KEY=''
export DATABASE_URI=''
export EMAIL_USER=''
export EMAIL_PASSWORD=''
The secret key is needed to keep client sessions on the web server secure, you can generate a random secret key by doing the following in your terminal:
import os
os.urandom(24)
Copy and paste that key into the SECRET_KEY variable in your bash profile.
If you haven't, download postgresql from: https://www.pgadmin.org/download/
Once you have setup the database, the DATABASE_URI in your bash profile will have the following format:
postgresql://postgres:<user_password>@localhost/<db_name>
The EMAIL_USER and EMAIL_PASSWORD are obvious, these are used to send confirmation emails to users that create new accounts.
After doing all this, save and run the following command:
python3 -m flask run
You should now see new tables pop up under your specific database in pgadmin4 and should be good to go.
To stop the web application do ctrl + c in the terminal, then type deactivate
to deactivate the virtual environment.
When logging in as a student, there will be a tab to access the dashboard. Clicking this tab gives access to the profile, courses, deadlines and inbox features for the student account. When accessing the profile page, a student can update their name, email, biography and as well as their profile picture. The profile page also shows a list of assignments that the student has completed as well as the courses that they are in. The courses tab is the most important feature since it keeps track of all of the courses that a student is in. In order to join a course a passcode as well as the course id or CRN(Course Registration Number) will be needed, these will be emailed to them by their instructor or given to them in a physical or online lecture. Once the course has been added, a student will have access to the syllabus, assignments, their grades and a list of students that are also in the course. Going over the deadline tab gives the student access to a list of assignments that have yet to be completed for all of their courses. Lastly, the inbox feature allows students to start a conversation with either another student in their course or the instructor for said course, it is also possible to create a group chat with multiple people, which can help in order to create study sessions.
Look for the blue add icon on the courses page
Enter the course ID and passcode given by your instructor.
Similarly to a student account, instructors are given access to the dashboard, along with the same features that a student has. The only difference is that instructors have the ability to create new courses, create new assignments and grade the students that have joined their course. Instructors are given ful reign over the course and can update their syllabus accordingly as well as edit grades as they see fit even long after a certain assignment has been submitted. They have the ability to drop students from the course and can also delete the course itself.
Clicking the same blue plus icon on the courses page similarly to a student account, you will be met with a new course pop up.
The max points corresponds to the max number of points that a student can get, for example if the max points is 800, then if a student completes all assignments totalling to the max points then they would have 100% which is an A in the course.
Click on the new assignment button
Most importantly when creating the assignment you will be given the option to choose the type of assignment that this will be, every type of assignment is given the option to add questions to be answered except for the instructions option.
When adding a question you are given the option to input the question title, the question itself, the correct answer and the number of points that the question is worth.
You are also given the choice of the question being answered as an input, multiple choice or paragraph.
Click the pencil draft icon and a new conversation prompt will appear.
Write a title for the conversation and use the search feature to find classmates or the instructor for the course that is selected
After you have finished the message you can hit send and you will be redirected to the conversation.