Skip to content

Simple learning management system (LMS) built via the Flask Framework.

Notifications You must be signed in to change notification settings

javierpelayo/educa

Repository files navigation

Educa

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.

Try it out

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.

Join an example course after creating a student account:

Course ID: 1

Course PW: 1234

Creating your own instance

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.

Student

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.

How to add a course as a student:

Look for the blue add icon on the courses page

Screen Shot 2022-04-01 at 12 00 16 PM

Enter the course ID and passcode given by your instructor.

adding a course

Instructors

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.

How to create a course:

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.

Screen Shot 2022-06-09 at 1 55 51 AM

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.

How to create an assignment:

Click on the new assignment button

Screen Shot 2022-06-11 at 4 48 24 PM

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.

Screen Shot 2022-06-09 at 1 56 09 AM

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.

Screen Shot 2022-06-09 at 1 58 12 AM

You are also given the choice of the question being answered as an input, multiple choice or paragraph.

Screen Shot 2022-06-11 at 4 54 54 PM

How to initiate a conversation using the inbox feature

Click the pencil draft icon and a new conversation prompt will appear.

Screen Shot 2022-04-01 at 12 12 16 PM

Write a title for the conversation and use the search feature to find classmates or the instructor for the course that is selected

Screen Shot 2022-04-01 at 12 13 01 PM

After you have finished the message you can hit send and you will be redirected to the conversation.

Screen Shot 2022-04-01 at 12 14 20 PM


About

Simple learning management system (LMS) built via the Flask Framework.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published