eduSteem development update (Week 1)

in #utopian-io6 years ago

Repository

https://github.com/bflanagin/EduSteem

Banner.png

About

eduSteem is a educational organization tool for traditional and non-traditional schools based on the process of "reflective learning" and what we have deemed "micro-scholarships". Micro-scholarships are cryptocurrency funded accounts created for the students to fund further educational goals. To learn more please read the projects introduction [here].

Please note this is a new project and most if not all the features should be considered testing quality. We hope to have the first version done by the beginning of August 2018. If you would like to contribute feel free to download and play with the application, we will have tasks that need to be done as soon as the first month of development is complete.

New Features

Pull Requests: 1 , 2, 3

Lesson Plan creation

Adapted from the Five Es lesson plan design, eduSteem helps educators create courses,units,and lessons easily. Using a step by step wizard that helps the creation of the plan.

shot-2018-06-04_14-58-08.jpg

Along with the Wizard everything is at your fingertips. With an At-A-Glance / Dashboard style layout you can easily view and modify any item you have created. (Later features like Admin level controls are being considered).

Following a logical hierarchical design each screen shows you information relevant to the level you're on as well as way to dive deeper into the lesson.

Course Level

shot-2018-06-10_14-43-29.jpg

On the Course level you get an overview of the course, what subject it relates too, and the Units beneath. Each unit also displays any lessons that it has available so that you can quickly find the unit and lesson you are looking for. You can also add new units to the course by clicking the "Add Unit" button.

Unit Level

shot-2018-06-10_14-43-53.jpg

Clicking on a course brings you to the unit view. Here you will be able to edit the information about the course and add lessons to the unit. Clicking "Add Lesson" will take you to the "Lesson Wizard" shown above.

Lesson Level

shot-2018-06-10_14-44-16.jpg

Finally, clicking on the lesson will give you detailed information about the lesson and should be considered the primary place to get your class ready to use the lesson. (A more interactive way to use these lesson plans is planned for a future update)

Implementation

Following a simple (interface file) + (logic file) approach we separate each interface page into various files.

CourseDashBoard.qml: We consider this file to be the root of the courses area. If you are familiar with QML this file follows the logical and straight forward design that I use in most of my projects. Each element is named after what it does, and is thus needs little explanation. The only notable feature is that the items within the list are dynamically sized to fit the largest element within, this way you will always have the data within render correctly. This is achieved using the code snippet below.


ESborder {
         anchors.horizontalCenter: parent.horizontalCenter
         width:thisWindow.width * 0.98
         height:if(lessons.height > unitColumn.height) {lessons.height * 1.05} else {unitColumn.height* 1.05}

          Component.onCompleted: {
                Network.checkOpenSeed(userid,cdate,"Units")
                  }
         Row {
             anchors.horizontalCenter: parent.horizontalCenter
             width:parent.width * 0.98
             height:if(lessons.height > unitColumn.height) {lessons.height} else {unitColumn.height}

Similar code is used in the rest of the files in this interface series. For brevity here are the rest of the interface files.

Wizards

Editors

Logic

In course.js we are simply adding data from the inputs to the appropriate databases. However due to the layout of some of the editors we had to implement a per-field edit function as well as a way to pull just the field into the editing form for easy quick edits. (Code reference)

School and data Synchronization

One of the features of eduSteem as a LMS is to allow multiple educators to connect to the same educational unit or "School" these educators need to be able to share lesson plans, see schedules and make additions and comments on the students work. For this task we use OpenSeed to handle the synchronization.

Implementation

Most of the functions required for syncing are found in the network.js file. We'll go over the functions briefly as they are pretty run of the mill.

  • checkOpenSeed: Checks the existence of a item on the server and in the case of existing accounts on new hardware downloads the needed information to initialize the new device.

  • sendToOpenSeed: Sends data to the server based on three variables userid,code, and type.

  • retrieveFromOpenSeed: The reverse function of sendToOpenSeed the server sends the requested data back based on the same three variables used in send.

  • sync: Sync is used to pull down any new information from the server, it works along with send and receive to make sure that data is up to date.

To Do

With this done we will begin to add real lesson plans to the system and adjust the system as needed. We will be adding multimedia support as well as a fleshed out "Student Preview" screen that will give the lesson plan creator an idea of what the students will see when they access the lesson. When we have completed every feature of the lesson plan creation we will add the ability to upload and download the lesson plans right from the steem block chain. Which will give other educators the ability to share and like other's plans.

Find out more

You can checkout more of my projects by following me here on steemit @bflanagin or checking out my github account below. If you would like to help with the development of the software feel free to leave suggestions here or on the github page for the project.

GitHub Account

https://github.com/bflanagin

Sort:  

Go here https://steemit.com/@a-a-a to get your post resteemed to over 72,000 followers.

Thank you for your contribution.

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]

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

Contributing on Utopian
Learn how to contribute on our website or by watching this tutorial on Youtube.

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

Vote for Utopian Witness!

Coin Marketplace

STEEM 0.29
TRX 0.12
JST 0.033
BTC 64561.16
ETH 3244.42
USDT 1.00
SBD 3.91