So, this week, I was able to teach myself enough html and PHP to host a webpage that, when a button is clicked, prints student canvas data.
I first tried to do this with HTML and JavaScript. However, my last entry explains why that wouldn't work. I knew since I could easily pull data from Canvas using Python, the issue was my use of a client side language vs. a server side one.
Same Origin Policy is incredibly important because, without it, a malicious site could easily pull a user's data from any source they please as long as the user is logged in. However, this isn't possible using a server-side language, such as Python and PHP, because the browser isn't being used.
In order to use PHP, I had to learn how to host a web server. I installed and configured a simple instance of Apache on my mac and visited my site via just typing localhost in the browser address bar. I then hosted a page I called "index.html" and had a button that called "script.php" that loaded the data.
I have 2 steps I plan on taking this week. I first need to parse through the JSON data that Canvas returns in order to receive data that would be useful to our project. Additionally, I need to have a permanent server that will host my site, as well as a public domain name, so my site could be reached anywhere and anytime. Rather than hosting it at home and paying for a domain name, I am going to ask the sysadmins in my CS department if I could get a virtual machine running on their servers, as well as a public domain name (such as cs.nmt.edu/creuproject/index.html).
Sunday, October 7, 2018
Monday, October 1, 2018
(9/29) Web Design
This week, I learned a lot about web design.
I began by learning the basics of HTML and JavaScript. I not only learned what it means to be a client-side language and a server-side one, but the benefits of using one over the other.
For example, my goal was to have a site that displays data provided by another site's API (Canvas). However, I learned that due to Same Origin Policy, this simply isn't possible from the browser, and it's a good thing it isn't due to security reasons.
I now know I'd have to achieve this goal using a server side language to pull data, then include it in my site. The language I have chosen is PHP. At first, I was wondering why simply including PHP code in my site didn't work, and that's how I was introduced to the big world of web servers and databases.
So, in conclusion, I learned web design is incredibly complicated and in order to achieve my goal, I have to first learn how to host a web server and manage a database. Until next time!
I began by learning the basics of HTML and JavaScript. I not only learned what it means to be a client-side language and a server-side one, but the benefits of using one over the other.
For example, my goal was to have a site that displays data provided by another site's API (Canvas). However, I learned that due to Same Origin Policy, this simply isn't possible from the browser, and it's a good thing it isn't due to security reasons.
I now know I'd have to achieve this goal using a server side language to pull data, then include it in my site. The language I have chosen is PHP. At first, I was wondering why simply including PHP code in my site didn't work, and that's how I was introduced to the big world of web servers and databases.
So, in conclusion, I learned web design is incredibly complicated and in order to achieve my goal, I have to first learn how to host a web server and manage a database. Until next time!
Sunday, September 23, 2018
(9/23) Progress
I have figured out how to include html iframes in Canvas, allowing us to display any page with JavaScript enabled.
My next goal will be to teach myself html and JavaScript. I will then find out how to pull data from the Canvas API, and from our game server.
My next goal will be to teach myself html and JavaScript. I will then find out how to pull data from the Canvas API, and from our game server.
Saturday, September 15, 2018
(9/15) Canvas Discovery
This week was a great week.
I figured out how to use the canvas API to pull student data from within a course, including grades, attendance, and assignment performance, all utilizing only GET requests. All this information is available using only the teacher's account, so we don't need every students' information.
My second goal was to find a way to display game data from a remote web server in canvas itself. I then discovered canvas is capable of displaying HTML and Javascript, which is incredibly useful if I want to use something like AJAX to display an Iframe of another site from within canvas.
My next goals are to implement two things: first would be displaying our test website in a canvas home page, and the second would be to display student class information on another website that I would be hosting myself.
I figured out how to use the canvas API to pull student data from within a course, including grades, attendance, and assignment performance, all utilizing only GET requests. All this information is available using only the teacher's account, so we don't need every students' information.
My second goal was to find a way to display game data from a remote web server in canvas itself. I then discovered canvas is capable of displaying HTML and Javascript, which is incredibly useful if I want to use something like AJAX to display an Iframe of another site from within canvas.
My next goals are to implement two things: first would be displaying our test website in a canvas home page, and the second would be to display student class information on another website that I would be hosting myself.
Tuesday, September 4, 2018
(9/1) Canvas Update
During the first week, I emailed NMT ACT in regards to a Canvas API, as well as CanvasLMS.
I was approved for a free Canvas teaching account, which will greatly help with me familiarizing myself with the application and finding anything that could help achieve this project's goal.
I found online documentation for the Canvas API. However, I was emailed back a few days later by David Iver from NMT ACT claiming security concerns would prohibit my use of a Canvas API. I will continue searching and asking, but it appears an API is out of the question, and I will have to rely on some kind of Canvas module.
This next week, I will continue searching through Canvas' modules.
I was approved for a free Canvas teaching account, which will greatly help with me familiarizing myself with the application and finding anything that could help achieve this project's goal.
I found online documentation for the Canvas API. However, I was emailed back a few days later by David Iver from NMT ACT claiming security concerns would prohibit my use of a Canvas API. I will continue searching and asking, but it appears an API is out of the question, and I will have to rely on some kind of Canvas module.
This next week, I will continue searching through Canvas' modules.
(8/25) First Week
I'd like to start off by saying how honored I am to be a part of this program. Looking at past blog entries has made me incredibly excited and optimistic about our future work. I am still fairly new to research projects in general, but I'm happy to be learning from my gifted mentor Dr. Kuo.
This last week, I focused on learning what our project was about. I also decided on which part of the project I would focus on developing, which was the reward system linking the application to the school grade-management system.
For now, I'll be looking at documentation regarding Canvas, the grade-management system used by New Mexico Tech, in search of any possibilities of using an API or any other way to be able to interface with data provided by Canvas.
-Donovan Jenkins
This last week, I focused on learning what our project was about. I also decided on which part of the project I would focus on developing, which was the reward system linking the application to the school grade-management system.
For now, I'll be looking at documentation regarding Canvas, the grade-management system used by New Mexico Tech, in search of any possibilities of using an API or any other way to be able to interface with data provided by Canvas.
-Donovan Jenkins
Sunday, May 7, 2017
Final Post for CREU '16-'17 group
"How lucky I am to have something
that makes saying goodbye so hard."
It is with a great deal of bittersweet emotion that we say goodbye. Last Thursday, May 4, marked the last meeting of our research group. We discussed the work that still has to be completed, like analyzing the data from the user surveys. Over the course of the summer, Nico will analyze the data we collect and use that data to write another research paper.
This past academic year has challenged us in ways we never imagined and allowed us to grow as students, researchers, software developers, and collaborators. Overall, our group is very pleased with our accomplishments and we are extremely thankful for the opportunity to participate in this amazing program.
So long, and thanks for all the fish.
NMT CREU '16-'17 group
Subscribe to:
Posts (Atom)