EduSteem - Student Interaction

in #utopian-io7 years ago

Repository

https://github.com/bflanagin/EduSteem

Continuing from the my last post ( here ) we continue to work on the student interface. In this update we look at the student's lesson view and how an educator creates tasks for them.

New Feature: LessonView

Screenshot from 2018-07-24 19-22-41.png

The lesson view area is where the students will do most of their work. Whether they are just watching a video or composing an essay the lesson view screen is where most of that will take place.
As you can see, several tabs run along the right hand side of the screen. The top two should be self explanatory, but under activity you will find various task related options such as "Turn In", "Take a break", etc. This will also be where educators can leave messages for the students for needed corrections.

Implementation

The LessonView.qml file houses the UI elements as well as the code needed to load the proper template for the task, and we call the loadTask function found in student.js to select the proper lesson.

New Feature: Assignment Editor

Screenshot from 2018-07-24 13-34-24.png
Default View

Screenshot from 2018-07-25 16-12-48.png
Selected

Once the lesson view concept had been nailed down I had to rethink how someone selects what the students will be doing, how that data would be added to the database, and how to make choosing the right assignment type as easy as possible. This replaces the old text only input from previous versions. Please note that the information added to the database is scrubbed of all special characters and replaced by database friendly information.

Implementation

As with all my work in Qt the UI is separated from the logic. Thankfully nothing had to be done in the logic given that all the needed functionality was already in place. If you would like to check out the qml file you can find it here ( AssignmentEdit.qml)

New Feature: Assignment Templates

Behind the above features are a set of templates and their associated settings pages. Named logically after their task this update includes:

  • Journal: A text document that is used for the students thoughts. Includes a template for adding images, as well as one with a prompt.

  • Writing: Similar to the Journal tasks this task will be used for any long form text input and is graded on a different metric.

  • Web: Displays a website for the students to interact with. The templates include: Site Only, Site+Notes, and Site+ Questions depending on what the educator needs.

  • Video: Similar to Web but with a video window instead of a web-page.

Implementation

All code required for these templates can be found here (Templates)

New Feature: Assignment List View

Screenshot from 2018-07-25 12-37-00.png

Last but not least, with the new data being created by the assignment editor we needed a new way to display the assignment in the lesson plan editor. It is indeed a simple implementation requiring very little code. However, the addition to the interface is as important as any other aspect when it comes to usability.

Implementation

The code for this addition can be found here (Assignment_ListView.qml)

In the next post I will have implemented most of the back and forth between the student and the teacher. Making sure that things move smoothly between new, started, reviewed, revised, and accepted will be key to the success of the project.

Banner.png

Find out more

eduSteem is going through a development sprint. These weekly updates, help keep me on track as well as giving those that are interested detailed reporting of my progress. The goal is to have it ready for use in a small school setting by the end of July. For further reading check out these other posts here on Steemit.

GitHub Account

https://github.com/bflanagin/

Sort:  

Thank you for your contribution.

  1. a huge commit with lots of files isn't a very good practise. You should try split the commits over a few small and meaningful ones.
  2. the javascript is very old fashion and not modern at all. For example, XMLHttpRequest could be just replaced with jQuery ajax calls
  3. inconsistent code formatting. It is suggested to format your code before you commit in.
  4. You SQL is mixed with JS and I would suggest extracting the SQLs into a class and [info[15], info[17], info[4], info[5], info[1], info[6], info[7], info[2], info[3], info[9], info[8], info[10], info[11], info[12], info[13], info[16], info[0]]) this is really un-maintainable.
  5. Your SQL var dataSTR = "SELECT * FROM Lessons WHERE id ='" + useri + "' AND unitnumber =" + unitnumber + + "' AND nitnumber =" + unitnumber + " ORDER BY lessonNum ASC" is subject to SQL injection --- not safe at all.

Your contribution has been evaluated according to Utopian policies and guidelines, as well as a predefined set of questions pertaining to the category.

To view those questions and the relevant answers related to your post, click here.


Need help? Write a ticket on https://support.utopian.io/.
Chat with us on Discord.
[utopian-moderator]

  1. Can't control the size of commits if I'm basing it on features being completed.
  2. I base my code on what is suggested in Qt's documents. I'll look into if I can "update" the calls but it doesn't matter to me as long as it works.
  3. fair point, though I make no promises
  4. skipping
  5. Only if you allow raw data into the inputs and don't validate it, and I do both.

Hey @bflanagin
Thanks for contributing on Utopian.
We’re already looking forward to your next contribution!

Want to chat? Join us on Discord https://discord.gg/h52nFrV.

Vote for Utopian Witness!

Congratulations @bflanagin! You have completed the following achievement on Steemit and have been rewarded with new badge(s) :

Award for the number of upvotes received

Click on the badge to view your Board of Honor.
If you no longer want to receive notifications, reply to this comment with the word STOP

To support your work, I also upvoted your post!

You can upvote this notification to help all Steemit users. Learn why here!

Congratulations! Your post has been selected as a daily Steemit truffle! It is listed on rank 19 of all contributions awarded today. You can find the TOP DAILY TRUFFLE PICKS HERE.

I upvoted your contribution because to my mind your post is at least 9 SBD worth and should receive 71 votes. It's now up to the lovely Steemit community to make this come true.

I am TrufflePig, an Artificial Intelligence Bot that helps minnows and content curators using Machine Learning. If you are curious how I select content, you can find an explanation here!

Have a nice day and sincerely yours,
trufflepig
TrufflePig

Coin Marketplace

STEEM 0.13
TRX 0.35
JST 0.034
BTC 114429.00
ETH 4416.71
SBD 0.84