<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Jamel-h</title>
    <description>The latest articles on DEV Community by Jamel-h (@jamelh).</description>
    <link>https://dev.to/jamelh</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F210238%2F39f64a63-c5e9-45de-b279-e9cbaa6df488.png</url>
      <title>DEV Community: Jamel-h</title>
      <link>https://dev.to/jamelh</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/jamelh"/>
    <language>en</language>
    <item>
      <title>Created an online learning platform to help my fellow students and teachers stay connected after COVID19 school closure.</title>
      <dc:creator>Jamel-h</dc:creator>
      <pubDate>Fri, 27 Mar 2020 21:55:22 +0000</pubDate>
      <link>https://dev.to/jamelh/created-an-online-learning-platform-to-help-my-fellow-students-and-teachers-stay-connected-after-covid19-school-closure-e3e</link>
      <guid>https://dev.to/jamelh/created-an-online-learning-platform-to-help-my-fellow-students-and-teachers-stay-connected-after-covid19-school-closure-e3e</guid>
      <description>&lt;p&gt;Hi! I’m a 17 year old student in Nova Scotia, Canada. The past few weeks have been pretty hectic, with school being cancelled and most of my teachers being ‘technologically illiterate’, we have been struggling to continue working on our schoolwork. &lt;/p&gt;

&lt;p&gt;I’m in the IB program, so just because my school is closed doesn’t mean that I get to stop studying (as much as I wish it were so 😉). &lt;/p&gt;

&lt;p&gt;My teachers really needed the ability to live stream with us, but couldn’t find a website that ‘did it all’.&lt;/p&gt;

&lt;p&gt;I decided that I would spend my March break working on a website that allows them to create a class, post assignments, upload documents and live stream to their students.&lt;/p&gt;

&lt;p&gt;// DOCUMENT EDITOR&lt;/p&gt;

&lt;p&gt;First thing was I needed a way for students and teachers to create documents and upload them to their class assignments.&lt;/p&gt;

&lt;p&gt;For that, I used the open source rich text editor QuillJS, and modified it using JS AJAX to save automatically everything that is written. When a user creates a document, the sever creates two files, one .php file that has the document unique token (generated on creation) and .txt file that contains the raw HTML of the doc file. The .php file loads the .txt file on awake, and writes to the text file on the input change.&lt;/p&gt;

&lt;p&gt;Documents can also be shared, uploaded and deleted.&lt;/p&gt;

&lt;p&gt;// CLASS SYSTEM&lt;/p&gt;

&lt;p&gt;When a teacher creates a class, they are given a unique 6 character alphanumeric code. This code is what students can use to join their class.&lt;/p&gt;

&lt;p&gt;Teachers can choose between two types of class posts: announcements, which are text based, and assignments, which has a due date and title.&lt;/p&gt;

&lt;p&gt;// LIVE STREAMING&lt;/p&gt;

&lt;p&gt;Now that teachers can create a class, assign work and upload/edit documents, they need to communicate with students.&lt;/p&gt;

&lt;p&gt;I was able to contact Zoom and get the basic plan’s restrictions removed for all accounts under my school district’s domain. This allows my teachers to create a free Zoom account that supports large groups of students.&lt;/p&gt;

&lt;p&gt;I then integrated Zoom through a url with parameters taken from the user (such as the user’s name) and place that into an iframe in the classroom. I use AJAX here to check for changes in the database of streams. If it sees a stream is active for the specific class, it will automatically log the student in (just as a viewer). The user doesn’t even know it’s zoom, however the teacher does.&lt;/p&gt;

&lt;p&gt;// INSTANT MESSAGING&lt;/p&gt;

&lt;p&gt;Using AJAX and PHP, I created a very simple way for teachers to get in contact with students. When you hover over a student’s name, a div will appear with the students name and profile photo, as well as a ‘message’ button. Clicking the button will allow you to message the student one on one.&lt;/p&gt;

&lt;p&gt;Also, there is a live chat underneath the stream for every classroom. This chat allows the class to communicate with each other and their teachers while the stream is active.&lt;/p&gt;

&lt;p&gt;// CONCLUSION&lt;/p&gt;

&lt;p&gt;Welp, that’s about it. It was a really fun learning experience, and it definitely kept me busy during these troubling times.&lt;/p&gt;

&lt;p&gt;Feel free to leave any questions or comments below 😃.&lt;/p&gt;

&lt;p&gt;(Website is live here: &lt;a href="http://www.ihomeroom.ca"&gt;www.ihomeroom.ca&lt;/a&gt;, if you want to check it out)&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>php</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Looking for coding blogs/apps</title>
      <dc:creator>Jamel-h</dc:creator>
      <pubDate>Sat, 17 Aug 2019 19:42:28 +0000</pubDate>
      <link>https://dev.to/jamelh/looking-for-coding-blogs-apps-328n</link>
      <guid>https://dev.to/jamelh/looking-for-coding-blogs-apps-328n</guid>
      <description>&lt;p&gt;What are the best coding blogs or apps? Not necessarily tutorials, but ones where you can read up on everything to do with coding.&lt;/p&gt;

&lt;p&gt;Thanks :)&lt;/p&gt;

</description>
      <category>help</category>
      <category>codenewbie</category>
    </item>
    <item>
      <title>Project Twiist - Dev log #2 (Design)</title>
      <dc:creator>Jamel-h</dc:creator>
      <pubDate>Mon, 12 Aug 2019 20:02:01 +0000</pubDate>
      <link>https://dev.to/jamelh/project-twiist-dev-log-2-design-3klg</link>
      <guid>https://dev.to/jamelh/project-twiist-dev-log-2-design-3klg</guid>
      <description>&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;br&gt;
The first thing I have decided to start on, is the website design. This is mostly because it's my strong suit (and it's relatively easy).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;DEVELOPMENT ENVIRONMENT&lt;/strong&gt;&lt;br&gt;
First off: I am using &lt;a href="https://glitch.com/" rel="noopener noreferrer"&gt;glitch.com&lt;/a&gt; while designing the website. Glitch is a really cool live development website/program, that allows me to edit every component of my website and then view my edit instantly in a new window. Of course, once I start coding real functionality into the website I will have to export my website and host it myself, but for now Glitch has been working perfectly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;PRELIMINARY GRAPHIC DESIGN&lt;/strong&gt;&lt;br&gt;
Although coding is a passion of mine, I really really enjoy graphic design. I am proficient, if not fluent, in Adobe Illustrator and Adobe Photoshop. This came to my benefit for this project, as it allowed me to quickly create some sample logo and design material for the website.&lt;/p&gt;

&lt;p&gt;Main Logo:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.glitch.com%2Fa80d5193-a105-43cb-8a36-8f7eeb03d145%252Ftwiist%2520logo%25203d.png%3Fv%3D1565327691685" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.glitch.com%2Fa80d5193-a105-43cb-8a36-8f7eeb03d145%252Ftwiist%2520logo%25203d.png%3Fv%3D1565327691685"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Main Logo With No Effect:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.glitch.com%2Fa80d5193-a105-43cb-8a36-8f7eeb03d145%252Ftwiist.png%3Fv%3D1565327691563" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.glitch.com%2Fa80d5193-a105-43cb-8a36-8f7eeb03d145%252Ftwiist.png%3Fv%3D1565327691563"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;BASIC CSS, HTML &amp;amp; JS FOR WEBSITE&lt;/strong&gt;&lt;br&gt;
After I found the site's colors, and designed the logo, I was ready to start styling the website. I am kinda skipping over the base website HTML "design" because it is really simple, but I will outline some specifics below.&lt;/p&gt;

&lt;p&gt;Home Page&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fy1bun7p5i8zgh2vkobk7.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fy1bun7p5i8zgh2vkobk7.jpg"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To fill up the home page, I used real thumbnails, titles, channel names, and view counts from &lt;a href="https://www.youtube.com/" rel="noopener noreferrer"&gt;YouTube&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fzrxeb7p99xk9pbom2n5y.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fzrxeb7p99xk9pbom2n5y.gif"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Each thumbnail has a simple CSS animation on it, making it 'hover' upwards on cursor hover. &lt;/p&gt;

&lt;pre class="highlight jsx"&gt;



```

&lt;span&gt;div&lt;/span&gt;.videothumbnail:hover {
&lt;span&gt;cursor&lt;/span&gt;:&lt;span&gt;pointer&lt;/span&gt;;
&lt;span&gt;bottom&lt;/span&gt;:&lt;span&gt;5px&lt;/span&gt;;
} 
&lt;/pre&gt;

&lt;p&gt;This simple code (&lt;code&gt;bottom:5px;&lt;/code&gt;) enables me to animate the thumbnails efficiently and easily. As I've said, I am no expert, and I am self taught, but this is the way I found to achieve the look I wanted.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F8d6z5qv3vn2dj55tra9n.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F8d6z5qv3vn2dj55tra9n.gif"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There is a navigation bar on the website that is tucked into the left side of the screen. The javascript to make it function is again, quite simple:&lt;/p&gt;

&lt;pre class="highlight jsx"&gt;

```



&lt;span&gt;function&lt;/span&gt; openNav() {
  document.&lt;span&gt;getElementById&lt;/span&gt;(&lt;span&gt;"mySidenav"&lt;/span&gt;).&lt;span&gt;style&lt;/span&gt;.&lt;span&gt;width&lt;/span&gt; = &lt;span&gt;"250px"&lt;/span&gt;;
  document.&lt;span&gt;getElementById&lt;/span&gt;(&lt;span&gt;"main"&lt;/span&gt;).&lt;span&gt;style&lt;/span&gt;.&lt;span&gt;marginLeft&lt;/span&gt; = &lt;span&gt;"250px"&lt;/span&gt;;
}

&lt;span&gt;function&lt;/span&gt; closeNav() {
  document.&lt;span&gt;getElementById&lt;/span&gt;(&lt;span&gt;"mySidenav"&lt;/span&gt;).&lt;span&gt;style&lt;/span&gt;.&lt;span&gt;width&lt;/span&gt; = &lt;span&gt;"0"&lt;/span&gt;;
  document.&lt;span&gt;getElementById&lt;/span&gt;(&lt;span&gt;"main"&lt;/span&gt;).&lt;span&gt;style&lt;/span&gt;.&lt;span&gt;marginLeft&lt;/span&gt; = &lt;span&gt;"0"&lt;/span&gt;;
}



```

&lt;/pre&gt;

&lt;p&gt;I then use &lt;code&gt;div id="main"&lt;/code&gt; as a container for the body of the page.&lt;/p&gt;

&lt;p&gt;Video Page&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.glitch.com%2Fa80d5193-a105-43cb-8a36-8f7eeb03d145%252Fvideo%2520page.gif%3Fv%3D1565639576326" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.glitch.com%2Fa80d5193-a105-43cb-8a36-8f7eeb03d145%252Fvideo%2520page.gif%3Fv%3D1565639576326"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can also see in this gif that there is a custom scroll bar and videoplayer for the website as well.&lt;/p&gt;

&lt;p&gt; Scrollbar Code: &lt;/p&gt;

&lt;pre class="highlight jsx"&gt;

```



::-webkit-scrollbar {
  &lt;span&gt;width&lt;/span&gt;: &lt;span&gt;10px&lt;/span&gt;;
}

::-webkit-scrollbar-track {
  &lt;span&gt;background&lt;/span&gt;: &lt;span&gt;#f1f1f1&lt;/span&gt;; 
}
 
::-webkit-scrollbar-thumb {
  &lt;span&gt;background&lt;/span&gt;: &lt;span&gt;#888&lt;/span&gt;; 
}

::-webkit-scrollbar-thumb:hover {
  &lt;span&gt;background&lt;/span&gt;: &lt;span&gt;#555&lt;/span&gt;; 
}



```



&lt;/pre&gt;

</description>
      <category>css</category>
      <category>javascript</category>
      <category>html</category>
      <category>codenewbie</category>
    </item>
    <item>
      <title>Project Twiist - Dev log #1 (Prologue)</title>
      <dc:creator>Jamel-h</dc:creator>
      <pubDate>Mon, 12 Aug 2019 17:54:46 +0000</pubDate>
      <link>https://dev.to/jamelh/project-twiist-dev-log-1-prologue-4j8i</link>
      <guid>https://dev.to/jamelh/project-twiist-dev-log-1-prologue-4j8i</guid>
      <description>&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;br&gt;
Progress has started on my first ever web project: an online video platform that hosts user-generated content going under the name "Project Twiist".&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;THE BEGINNINGS&lt;/strong&gt;&lt;br&gt;
I am new to programming.. well, sort of. Ever since I was 11 years old, I had a huge interest in open world video games, specifically the Grand Theft Auto series. The way that the devs were able to create a giant world, completely explorable (within bounds) and filled with things to do, amazed me. The problem? Well there's always some problem, and for me, it was that I was 11, and Grand Theft Auto 5 (the newest addition to the GTA series) was rated M+ (18+). That meant that my parents wouldn't let me play it. I understood where they were coming from, but I repeatedly reassured them that I was not playing for the things getting the 'M' rating, I was simply going to play so I could explore the accomplishment of GTA, as well as yielding the many vehicles throughout the game.&lt;/p&gt;

&lt;p&gt;Still: no. My parents, responsibly and kindly, told me to find something else to do. So, I did. I download Unity3d and started playing around. Now, I'm an optimist, as well as a diligent and persistent kid. So when I launched unity.exe for the first time, I thought to myself "how hard could it be?", and boy was I surprised.&lt;/p&gt;

&lt;p&gt;Obviously I didn't sit down, 11 year old me, and start coding a GTA V replica, but I sure tried... for a while. I kept running into problems, but slowly I was piecing together a game. Now, here is where I need to be specific: I was &lt;em&gt;piecing&lt;/em&gt; together a game. You have to remember that I was not necessarily interested in 'coding' a game, but more so playing GTA V (or any version of it that I attempt to create), therefore I was allowing myself to take many many shortcuts. The discovery of the Unity Asset Store is what really sped things up. &lt;/p&gt;

&lt;p&gt;With the assets, I quickly starting piecing a real prototype together, there was an animated character, working weapons, a minimap, a world (not modeled by me!), drivable vehicles, and even multiplayer. I was proud of my creation, but what really was "my" creation. &lt;/p&gt;

&lt;p&gt;Although by the time I bought GTA V (15) I had a working prototype of my GTA, I was too interested in the real game to care anymore. BUT, what I did care about, was how much fun 'building' a game really was and how much I enjoyed the process. &lt;/p&gt;

&lt;p&gt;THAT is what gave me the urge to code something, make something that I could be truly proud of. That's where I got the idea to create Twiist, an online video platform that hosts user-generated content. A big undertaking? Yes. Was I up to it? Double yes.&lt;/p&gt;

</description>
      <category>html</category>
      <category>css</category>
      <category>javascript</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
