Skip to content

Releases: CodeLifeOrg/codelife

v0.5.0 - Gilberto Gil

12 Oct 20:29
7d9cb41
Compare
Choose a tag to compare
v0.5.0 - Gilberto Gil Pre-release
Pre-release

Gilberto Gil marks the 8th official release of CodeLife. With this release, we have integrated much of the feedback from user testing, mobile testing, accessibility testing and a formal code review. As such, there are no new features released but instead many smaller improvements and edge case exceptions added. The following a list of some of the specifics:

Image uploading

Previously if a user tried to upload an image larger than 2mb the site would get stuck in an infinite loading screen. Now the site responds to notify the user that their upload failed and returns them to their profile page.

screen shot 2018-10-04 at 4 24 21 pm

Mobile support

We are continuing to hunt down bugs discovered by our users and ourselves while using the platform on our mobile devices. The site has gained a larger audience than expected from mobile platforms and as such we are fixes unexpected behavior.

  • Slide content width bug on quizzes:
    img_8429

  • Better island overview and level selector on mobile
    img_8429_2

  • Console drawer no longer blocked by iOS safari bottom toolbar
    img_8493

  • A new slide recommending users download a mobile keyboard
    mobile-dev-keyboard

  • Returns user to top of page when navigating to new slide

  • Allow inertia scrolling on overflow containers

  • Fixes code editor jumping to top of page when clicking into it

  • Disappearing disabled buttons

  • Removes fullscreen button from read-only code slides

Accessibility support

  • Keyboard navigation has been greatly improved. Using the tab button to navigate the site has been improved in a number of ways. There existed many "traps" before, in which a user could get stuck on a part of the page without the ability to navigate backward or forward on the page. There is also much more visual indication when a link or button is "active", meaning it is the currently highlighted action item.
  • The contrast in the navigation has been increased, both on the logo and the links.

v0.4.0 - "Fernanda Montenegro"

10 May 19:01
b026079
Compare
Choose a tag to compare
Pre-release

Fernanda Montenegro is the seventh official development release of Codelife. It introduces a design overhaul with mobile responsiveness, student discussions, project collaboration, sitewide search, an SEO-optimized lesson plan, social sharing, a progress leaderboard, codeblock forking, featured page configuration, webpage screenshots, two new islands, and a number of bug fixes.

Design Overhaul and Mobile Responsiveness

screen shot 2018-05-10 at 1 39 41 pm

Almost every aspect of Codelife has had its design updated and streamlined. In addition to a large number of UI/UX improvements and page redesigns, Codelife is now responsive for mobile use.

Student Discussions

screen shot 2018-05-10 at 1 43 04 pm

Every slide in Codelife now has a Discussion panel associated with it, where students and admins can discuss the content of that slide and share answers, theories, or best practices. Viewing the Discussion for a slide will not give the student full credit for the level, but they can always go back and complete the level without help for full credit.

Similar to codeblocks and other aspects of Codelife, threads and comments can be liked/disliked or reported for inappropriate content. New panels have been added to the Admin Console for adminstering flagged Discussion content

Project Collaboration

screen shot 2018-05-10 at 1 46 51 pm

Students may now collaborate with up to 5 others to work on a cooperative project. The Projects page includes new modules for adding, removing, or managing the members on a given project.

screen shot 2018-05-10 at 1 47 16 pm

Sitewide Search

screen shot 2018-05-10 at 1 49 15 pm

A new Search bar at the top of the page allows users to search for users and projects.

SEO-Optimized Lesson Plan

screen shot 2018-05-10 at 1 50 39 pm

To assist with generating more traffic to Codelife, a Lesson Plan has been added which details the slides of each island in an SEO-optimized, crawler-readable format.

The goal of this page is both to drive traffic to the site, as well as provide an overview of the content for teachers or educators.

Social Sharing

screen shot 2018-05-10 at 1 58 56 pm

Project pages and codeblocks now allow for Facebook sharing with screenshots. There are also several social hooks in place (such as when a user completes an island) that invite the user to share their codeblock or progress.

Progress Leaderboard

screen shot 2018-05-10 at 1 59 59 pm

A leaderboard now tracks the users who have completed the most content on Codelife.

Codeblock Forking

screen shot 2018-05-10 at 2 00 47 pm

Users may instantly fork a codeblock, which will start a new project from the source code of the codeblock. This encourages collaboration and remixing of other students' code.

Featured Page Configuration

screen shot 2018-05-10 at 2 03 39 pm

On the homepage, a set of codeblocks and projects are "Featured," showcasing the work of the students. All codeblocks and projects across the site now will automatically show a "feature" button for admins to feature or unfeature any given codeblock or project.

Additionally, an admin panel that lists ALL codeblocks and projects has been added to allow for easy switching.

Webpage Screenshots

screen shot 2018-05-10 at 2 06 57 pm

A screenshot service has been added to the Codelife server that asychronously captures web page screenshots to improve visual page selection. These images are also the ones that appear on Facebook when the page is shared.

Two New Islands

screen shot 2018-05-10 at 2 10 36 pm

Space Island and Trash Island have been added, teaching students about interacting with the DOM and writing clean code.

Bug Fixes etc.

As always, a number of bug fixes and optimizations have been added to this version. Additionally, though the contest was postponed, the modules for hosting a coding competition have been created, and are currently disabled.

v0.3.1 - "Erasmus Carlos"

05 Jan 16:51
aada70f
Compare
Choose a tag to compare
Pre-release

Erasmus Carlos is the first development release of CodeLife following the Beta, and the sixth development release overall. It introduces a user statistics page, CMS permalinks, glossary builder, glossary lookup, API overhaul, a documentation engine, and several bug fixes.

User Statistics Page

screen shot 2018-01-05 at 11 40 47 am

Tracking user adoption and engagement is critical for an educational platform. To aid in this effort, an admin-only user statistics page has been added, where new user signups, locations, and platform progress can be viewed and sorted.

CMS Permalinks

screen shot 2018-01-05 at 11 43 12 am

The CMS now stores locations in the URL, so islands, levels and slides may be directly linked. Additionally, admin users now will see an "edit" icon in CodeLife's main slide interface, which links directly to the CMS to make changes to that particular slide.

screen shot 2018-01-05 at 11 43 39 am

Glossary Builder

screen shot 2018-01-05 at 11 45 10 am

In previous releases, glossary terms were stored in the translation file of the i18n module. This made translation difficult as fixes to translations required new builds. All glossary terms have been moved to the postgres database, and a simple editor has been added for managing words and their definitions.

Glossary Lookup

screen shot 2018-01-05 at 11 45 38 am

Though the glossary page is useful in its own right, it lacks discoverability and context. All CMS rich text editors now contain glossary lookup functionality, which allows admins to search for glossary terms and insert direct links to their definitions into the text of the slide or island.

API Overhaul

In previous releases, while core database interactions were still in development, a number of API routes used a mix of Sequelize syntax and raw SQL queries. The API has been rewritten (and fully documented) to use only the pure JavaScript ORM, improving code readability and maintainability. Additionally, a number of database interactions (e.g., loading the lists of islands and levels) have been moved to redux, resulting in less overall database calls and improved performance.

Documentation Engine

screen shot 2018-01-05 at 11 47 40 am

In anticipation of ongoing support for CodeLife, the JSDoc engine has been added to the project to assist in automatically generating documentation pages for the source code. Authoring of documentation content has already begun and is currently ongoing.

Bug Fixes

A number of bugs regarding project permalinks, quilljs toolbar behavior, and CSS layouts have been addressed.

v0.3.0 - "Codelife Beta"

22 Nov 21:07
75002f4
Compare
Choose a tag to compare
Pre-release

v0.3.0 - CodeLife Beta

screen shot 2017-11-22 at 4 04 34 pm

CodeLife Beta is the 0.3.0 beta version of CodeLife. It includes a Content Management System (CMS) for admins, a flagging system with email notifications for abusive content, sandboxed JavaScript rendering with console emulation, and three new islands of content, with two more slated for December and January release.

Content Management System

screen shot 2017-11-22 at 3 46 12 pm

Originally introduced in v0.2.0, the CMS has undergone a series of visual improvements and bug fixes. It allows for the creation, translation, and deletion of Islands, Levels, and Slides. The rule systems for programming slides have undergone a number of improvements as well, allowing content creators to specify passing and failure states for given challenges.

Flagging System for Abusive Content

screen shot 2017-11-22 at 3 47 24 pm

All public-facing shareable pages in CodeLife have a "Flag" button where users may report abusive or inappropriate content. After a configurable number of reports, projects will stop showing up in display lists, or even become automatically removed (pending moderation). Admin users have the ability to ban pages immediately.

screen shot 2017-11-22 at 3 48 51 pm

When content is flagged, an email is sent to all admins, directing them to the moderation panel, where they may allow or ban the content.

31947525-8123bc8c-b8a2-11e7-8d9b-9b7b98b053af

To prevent abuse of this system, users are subjected to a monthly limit of reports, which refills after 30 days.

Sandboxed Javascript Rendering

Running arbitrary code always presents a certain level of security risk. To limit this, all JavaScript code is rendered in an entirely different web domain, communicating via postMessage. The remote rendering environment has also been fitted with infinite loop protection to harden against overflow crashes, which can be common for new programmers.

Console Emulation and Code Validation

screen shot 2017-11-22 at 4 00 13 pm

To help students learn in as close to a real environment as possible, CodeLife intercepts JavaScript error messages and console logs and presents them in an emulated console window. This is provided along with a validation window to assist in best coding practices and testing.

New Islands

screen shot 2017-11-22 at 4 01 40 pm

Three new islands, Desert, Farm, and Industry, have been added to Codelife. These cover lists, variables, classes, ids, if/else statements, functions, tables, comments, and more. Two more islands, City and Clock, are slated for December and January release.

Bug Fixes and UX Improvements

A number of bug fixes and performance improvements, detailed in previous releases, are included in this release.

v0.2.3b - "Dida Midweek"

15 Nov 19:34
03cdfaa
Compare
Choose a tag to compare
Pre-release

This special midweek pre-release is being pushed to dev for testing. It includes several new islands, UI overhauls, improved remote rendering, flagging email notifications, and several bug fixes.

v0.2.2 - "Carmen"

24 Oct 14:11
Compare
Choose a tag to compare
v0.2.2 - "Carmen" Pre-release
Pre-release

Carmen is the third development pre-release for Codelife. It introduces a collated admin panel, advanced javascript rules, protection against flagging abuse, and remote server rendering to improve security.

Admin Panel

screen shot 2017-10-23 at 5 01 13 pm

User Roles (such as user, contributor, and admin) have been added to Codelife. As such, all admin capabilities have been placed in a single panel, requiring admin login to access. Here, admins have the ability to add and delete lesson content, translate test rules, moderate flagged content, and set user permissions.

Javascript Rules

The javascript rule system now includes variable equivalence, function invocation, and regex matching. Lesson feedback will now be more granular for forthcoming Javascript lessons.

Flagging Abuse Protection

screen shot 2017-10-24 at 10 02 30 am

Though bullying can occur through inappropriate content, so too can it occur by falsely flagging content. Users are now provided an admin-configurable monthly quota of reports to cut down on fraudulent reports.

Remote Server Rendering

screen shot 2017-10-23 at 5 03 00 pm

As with any web service that allows users to upload content and interact, executing arbitrary Javascript can be unsafe. The first step to improving security is to render the javascript on a separate domain, which is now accomplished via a sandbox set up at codelife.tech.

Known Issues

  • Remote Server Rendering is still in testing, currently the page will not render until a keystroke is registered.
  • The Rules Panel layout will undergo a redesign before the next pre-release.
  • There is a known state issue when Codeblocks are closed and re-opened, under investigation.

v0.2.1 - "Belchior"

05 Oct 19:56
Compare
Choose a tag to compare
v0.2.1 - "Belchior" Pre-release
Pre-release

belchior Belchior is the second development pre-release for Codelife. It introduces an emulated javascript console, a flagging system for inappropriate content, and the beginnings of a rule overhaul for forthcoming javascript lessons.

Javascript Console

screen shot 2017-10-05 at 3 46 12 pm

One of the most important parts of javascript development is interacting with the development console by reading error messages and printing statements to aid in debugging. Codelife's code editor now includes a "drawer" component that allows students to view errors and console.log statements. In future lessons, students will be asked to print values to the console as part of their testing.

Flagging Inappropriate Content

screen shot 2017-10-05 at 3 47 07 pm

All pages where student content can be viewed now have a "Flag" button, where users can report inappropriate content. The results of these reports are collated into an admin panal that is currently in development.

screen shot 2017-10-05 at 3 49 00 pm

Known Issues

  • Admin Features currently exist as single pages and don't require login. Codelife's next release will gather these into a single panel and introduce "roles" so that only admins can create content and review flags.

  • The "rules" panel under the code windows currently covers some of the coding area, and is in the process of a graphical / UX redesign.

  • Single-line comments (using //) currently breaks javascript interpretation. Work continues on hardening the JS interpreter.

As always, content creation continues and new islands will be filled in during the coming weeks.

v0.2.3 - "Dida"

06 Nov 17:24
Compare
Choose a tag to compare
v0.2.3 - "Dida" Pre-release
Pre-release

Dida is the fourth development pre-release for Codelife. It introduces three new islands, a new homepage, infinite loop protection, and numerous bug fixes.

New Islands

screen shot 2017-11-06 at 12 12 37 pm

Three new islands are ready for translation: Desert Island, Farm Island, and Industry Island. These cover lists, variables, classes, ids, if/else statements, functions, tables, comments, and more.

New Homepage

screen shot 2017-11-06 at 12 14 14 pm

A new splash page now greets students and directs them to continue on their latest island. A placeholder for the forthcoming video, as well as featured projects and codeblocks, have been added to this page.

Infinite Loop Protection

screen shot 2017-11-06 at 12 15 43 pm

In our continuing effort to harden the Code Editor, we have added rudimentary infinite loop protection. Infinite loops are a common programming mistake for early developers, and running this code can lock up your coding session. This enhancement helps to lessen the potential for this to occur.

Numerous Bug Fixes

A number of small UX bugs, javascript rule edge cases, and CMS enhancements have been addressed, and these efforts continue via Github Issues.

v0.2.0 - "Antônio Carlos Jobim"

21 Sep 22:06
Compare
Choose a tag to compare
Pre-release

Antônio is the first of several bi-weekly development releases for Codelife. It is the first to implement a CMS (Content Management System), available at /lessonbuilder.

screen shot 2017-09-21 at 5 57 10 pm

The CMS itself is nearly feature complete. Features include:

  • add, remove, and reorder islands, levels, and slides.
  • separate set of fields for PT language to aid in translation.
  • select graphical themes for islands (more art assets incoming).
  • upload images for slides

Codelife is currently undergoing development in its system of "rules" for judging student code. Our goal is to improve the granularity and precision of the feedback that we give students, and as such, there are some known issues in this release:

  • all code windows have a "validation" section that overlaps the code area
  • many slides are not passable in their current state without adding additional html elements
  • the feedback hover behavior is currently disabled while the validation system is reworked.
  • new island creation has a known crashing bug (fixed in develop)

We will be working with content creators in the coming weeks (via the new CMS) to build out new content.