You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The Research page contains cards for each of the research areas actively being researched by EPICLab members. The following updates need to be made to them:
Update the titles of the cards to reflect the actual research areas:
Privacy & Security
Inclusivity
OSS Communities
Developer Cognition
??? (need to be discussed/confirmed in group meeting)
Create linked pages for each research area, which contain the following:
Description of research area (e.g. an example from CMU STRUDEL)
Recent publications for that research area (with links to the papers)
Students involved in that area of research (with links to their People page profiles)
Update the stock photos at the top of each card to be relevant to each particular research area.
The Last updated 3 mins ago at the bottom of each card needs to be configured to dynamically update when any new content or changes are made to the page for that particular research area. This will definitely require code written in JavaScript in order to dynamically pull and display this type of information (possibly grabbing the timestamp from GitHub for each research area page?).
For Task 2, where do I find the description, publications, and students? Or should I create a description and try to look through the publications and students for correlations with the research areas?
For both Task 1 & 2 there is missing information that will need to be filled in during an EPICLab group meeting. Since the next one is scheduled for tomorrow, I will add this to the agenda and update this issue with more information after that. In the meantime, you can start researching how to accomplish Task 4.
for Task 4, is it necessary that we do a timestamp (e.g. Last updated 3 hours ago)? Can we just update the date when the file is changed (e.g. Last updated 8/11/20)?
That is actually not a timestamp, but a duration between the timestamp of the last change and the current time. This appears complicated, but there are several date and time libraries that make this an easy problem to solve. For example, the Luxon library provides the ability to do math with DateTime objects. Look at the diff method to see that in JavaScript you could write something like:
The installation commands for Luxon - Node are npm commands that need to be executed in a terminal from within the EPICLab.github.io project directory. If you don't have npm installed as a command on your system, you will want to follow the Downloading and installing Node.js and npm instructions.
I don't believe you can run JavaScript code within the terminal, since it requires an environment to be running. If you want to see how JavaScript works in a basic page, it must be embedded into a .html page (specifically within a <script>//javascript_code</script> tag). This time feature requires dynamic code, so it's a bit of a different process than writing static content onto the website. As an example, if you look at Research (L123-L125) you'll see:
These lines are pulling in JavaScript code, which are stored in those jquery.min.js and bootstrap.bundle.min.js files. If you mimic a basic version of those files, you can probably get started that way.
Looks good to me. But hopefully the Research Members names are hyperlinks to their profiles on the People page, and the Recent Publications titles are hyperlinks to their listings on the Publications page.
Are these photos okay for the new research cards? Do you know when the descriptions will be ready?
Also, I've been trying to create the javascript duration code through html, but I keep getting an empty output. I've looked up tutorials, but Luxon seems to be uncommon. There was only one YouTube tutorial, and it didn't help very much.
Those images are very generic, and therefore don't do a good job of conveying the type of research being conducted within each research area. We can ask the graduate student leads for each area to decide on the most appropriate image. However, in order to make sure that the images all fit well together, we need to provide each lead a set of possible images that would fit with the design. Although we discussed the descriptions in the group meeting on Wednesday, we will have to follow up with each lead to make sure those descriptions get written in a timely manner.
Let me take a look at the duration problem and see if I can quickly add code to your changes branch. I'll also reach out to each of the student leads to get their descriptions and image selections started. Might take a few days to get responses, since everyone is gearing up for paper submission deadlines. I'll add updates to this issue when I have them.
The format of recent publications looks good. However, we want to have some way of indicating that those publications are clickable links. Your question brings up a larger design discussion, which I'm breaking off from this issue and adding to #27.
First, I need to acknowledge that my recommendation to look at the vendor/jquery/jquery.min.js and vendor/bootstrap/js/bootstrap.bundle.min.js wasn't as helpful as I had hoped. Both of those files are minified, which makes them exceedingly unreadable and not meant for humans.
If you pull the code from commit 8898798 that was added to your changes branch, you will find that I added luxon.min.js (which is also minified) so that we can use the Luxon library. The way to import Luxon and the custom timestamp.js file (which includes a timeSince() function) would be to add the following lines within the <header> tag of any .html files:
I didn't dive into figuring out how to read the actual update timestamps from each of those individual research area pages, but this commit signifies a starting point for you to explore.
Note: I had a problem being able to see the JavaScript dynamic elements when loading the local research.html file into Firefox, which gave me an Error: CORS request not HTTP message. I had to read through the MDN: CORSRequestNotHttp article to find out that I needed to go into about:config and temporarily disable the privacy.file_unique_origin preference.
Activity
audreyau commentedon Aug 11, 2020
For Task 2, where do I find the description, publications, and students? Or should I create a description and try to look through the publications and students for correlations with the research areas?
nelsonni commentedon Aug 11, 2020
For both Task 1 & 2 there is missing information that will need to be filled in during an EPICLab group meeting. Since the next one is scheduled for tomorrow, I will add this to the agenda and update this issue with more information after that. In the meantime, you can start researching how to accomplish Task 4.
audreyau commentedon Aug 11, 2020
for Task 4, is it necessary that we do a timestamp (e.g. Last updated 3 hours ago)? Can we just update the date when the file is changed (e.g. Last updated 8/11/20)?
nelsonni commentedon Aug 11, 2020
That is actually not a timestamp, but a duration between the timestamp of the last change and the current time. This appears complicated, but there are several date and time libraries that make this an easy problem to solve. For example, the
Luxonlibrary provides the ability to do math withDateTimeobjects. Look at thediffmethod to see that in JavaScript you could write something like:This project uses Node.js as the platform, so follow the Luxon - Node installation instructions for pulling it into the project in order to use it.
audreyau commentedon Aug 11, 2020
I'm a little lost on the Luxon - Node installation. Do I enter those commands into my terminal, a html file, or a javascript file?
nelsonni commentedon Aug 11, 2020
The installation commands for Luxon - Node are
npmcommands that need to be executed in a terminal from within theEPICLab.github.ioproject directory. If you don't havenpminstalled as a command on your system, you will want to follow the Downloading and installing Node.js and npm instructions.audreyau commentedon Aug 12, 2020
I've been trying to do the Javascript duration code, but now when I run my code
const{ DateTime } = require("luxon"); var timestamp = DateTime.fromISO('2020-05-25T09:45'); timestamp.diffNow(['months', 'days']).toObject()on Node.js through the terminal, nothing happens. There is no output or error message.
audreyau commentedon Aug 12, 2020
Is having something like this good for the previous high school students section?
Desktop view:

Mobile view:

nelsonni commentedon Aug 12, 2020
That design for
High School Internslooks good.I don't believe you can run JavaScript code within the terminal, since it requires an environment to be running. If you want to see how JavaScript works in a basic page, it must be embedded into a
.htmlpage (specifically within a<script>//javascript_code</script>tag). This time feature requires dynamic code, so it's a bit of a different process than writing static content onto the website. As an example, if you look at Research (L123-L125) you'll see:These lines are pulling in JavaScript code, which are stored in those
jquery.min.jsandbootstrap.bundle.min.jsfiles. If you mimic a basic version of those files, you can probably get started that way.audreyau commentedon Aug 13, 2020
One more thing for today!

Is this format okay for the individual research pages?
nelsonni commentedon Aug 13, 2020
Looks good to me. But hopefully the
Research Membersnames are hyperlinks to their profiles on the People page, and theRecent Publicationstitles are hyperlinks to their listings on the Publications page.audreyau commentedon Aug 14, 2020
Are these photos okay for the new research cards? Do you know when the descriptions will be ready?

Also, I've been trying to create the javascript duration code through html, but I keep getting an empty output. I've looked up tutorials, but Luxon seems to be uncommon. There was only one YouTube tutorial, and it didn't help very much.
nelsonni commentedon Aug 14, 2020
Those images are very generic, and therefore don't do a good job of conveying the type of research being conducted within each research area. We can ask the graduate student leads for each area to decide on the most appropriate image. However, in order to make sure that the images all fit well together, we need to provide each lead a set of possible images that would fit with the design. Although we discussed the descriptions in the group meeting on Wednesday, we will have to follow up with each lead to make sure those descriptions get written in a timely manner.
Let me take a look at the duration problem and see if I can quickly add code to your
changesbranch. I'll also reach out to each of the student leads to get their descriptions and image selections started. Might take a few days to get responses, since everyone is gearing up for paper submission deadlines. I'll add updates to this issue when I have them.audreyau commentedon Aug 14, 2020
Perfect! Thank you so much. For now, I'll leave the

last updatedas a date.I'm adding publications to the individual research pages. Is this format okay?

Should we keep the pop-up link icon? The problem is that sometimes there isn't enough room on that line for the icon, so there will be a line break.

nelsonni commentedon Aug 14, 2020
The format of recent publications looks good. However, we want to have some way of indicating that those publications are clickable links. Your question brings up a larger design discussion, which I'm breaking off from this issue and adding to #27.
nelsonni commentedon Aug 14, 2020
First, I need to acknowledge that my recommendation to look at the
vendor/jquery/jquery.min.jsandvendor/bootstrap/js/bootstrap.bundle.min.jswasn't as helpful as I had hoped. Both of those files are minified, which makes them exceedingly unreadable and not meant for humans.If you pull the code from commit 8898798 that was added to your
changesbranch, you will find that I addedluxon.min.js(which is also minified) so that we can use theLuxonlibrary. The way to importLuxonand the customtimestamp.jsfile (which includes atimeSince()function) would be to add the following lines within the<header>tag of any.htmlfiles:An instance of using of that
timeSince()function can be found at the bottom of theresearch.htmlpage, which says:I didn't dive into figuring out how to read the actual update timestamps from each of those individual research area pages, but this commit signifies a starting point for you to explore.
Note: I had a problem being able to see the JavaScript dynamic elements when loading the local
research.htmlfile into Firefox, which gave me anError: CORS request not HTTPmessage. I had to read through the MDN: CORSRequestNotHttp article to find out that I needed to go intoabout:configand temporarily disable theprivacy.file_unique_originpreference.eviemayy commentedon Jan 25, 2021
was this done over the summer? Or should I bring this up at Wednesday's meeting?
nelsonni commentedon Jan 26, 2021
This was not completed, so bringing it up during Wednesday's meeting is a good idea.