Multi-user web apps (bubble.io, JavaScript):
"Econtrainer" — easily create training problem sets using advanced filters.
"Econquestions" — questions and answers platform which helps teachers optimally decide who should answer this or that question.
Apps were used by a team of teachers and 100+ students at Shkolkovo online school.
Multi-user web app "Universam-anketa". User accounts, surveys, learning management system. (bubble.io)
I developed the product according to the client's requests:
Browsing automation, monitoring web pages and sending notifications (Node.js, Puppeteer, JavaScript / HTML / CSS)
Parsing data from web pages, generating analytics tables (Node.js, Puppeteer, SQL, JavaScript / HTML / CSS)
Customers and orders database app (bubble.io)
LecturesOnMicroeconomics.com. Textbook trailer website with animated interactive fiction. (JavaScript / HTML / CSS)
I came up with the product idea, developed the product, and used it at work or personally:
"doit.js" — full-stack framework and interactive development environment. Inspired by Smalltalk environment and bubble.io platform. (Node.js, SQL, JavaScript / HTML / CSS)
Chrome extension "Code editor connector". Connect any web-based code editor to any opened website and execute any code selections in this websites's console. (JavaScript, Chrome extension, WebSocket)
Song player with special functionality that facilitates learning to sing and play (JavaScript / HTML / CSS, File and Directory Entries API)
Voice interface that helps children to develop polite habits (JavaScript / HTML / CSS)
Doit.js
Full-stack framework and interactive development environment.
Inspired by Smalltalk environment and bubble.io platform.
It reimagines the application code's structure by leveraging the HTML element tree for modularization.
Details and features:
• I use HTML elements tree as a way to organize and modularize code: any HTML element in the template can have JavaScript code associated with it. An element can conveniently pass data to children, which leads to a simple and succinct application code.
• Interactive development environment: you can click on any HTML element in the browser to edit its associated JavaScript code and apply changes live without restarting the app. While editing code, you can select any expression and evaluate it in the console by pressing a keyboard shortcut. There are other features of the environment: color highlighting of elements based on whether they have code, conveniently traversing the tree of elements with keyboard shortcuts etc.
• Direct integration with the database: when writing front-end code, you can write queries directly in terms of database entities, without the need to write separate back-end code.
• Reactivity out of the box: graph of dependencies between elements and database tables is drawn automatically; and each time your program writes to some table of the database, the elements that depend on that table will be automatically updated.
Google Chrome extension "Read aloud with auto language detection" (HTML, CSS, Javascript), 2020
1000+ users
Open in Chrome Web Store
Text-to-speech web reader. This extension helps you read aloud websites by using Google Chrome text-to-speech engine. It can automatically detect the language of current sentence (currently English or Russian) and can be conveniently controlled with keyboard shortcuts.
Interactive fiction website, 2017
https://lecturesonmicroeconomics.com
This was my first freelance project. It is a trailer website for the textbook "Lectures on Microeconomics: The Big Questions Approach" (MIT Press) by Romans Pancs with animated interactive fiction
Serverless web apps (HTML, CSS, Javascript)
Song player for Google Chrome, 2017
Open
This audio player provides special functionality and convenient user interface that helps quickly learn songs (to sing and to play accompaniment on guitar or piano):
• breaking song into fragments by pressing a button at the right moment during listening
• loop a fragment
• play current fragment once by pressing a button
• go to next/previous fragment
• change speed while playing
I also used File and Directory Entries API so that a user can conveniently add local audio files by drag-and-dropping a folder to the webpage.
Voice interface, 2017
A voice robot for children which teaches them how to ask politely. He can play songs but only if one asks him politely.
Browser userscripts (HTML, CSS, Javascript)
On-selection translator, 2017
A plug-in for KhanAcademy.org that adds on-selection translation functionality. It helps non-English-speaking students learn math and English simultaneously.
Smalltalk/Pharo/Squeak
Janko piano emulator, 2016
Janko piano is an alternative piano keyboard layout which has several benefits that makes learning it much easier than learning traditional piano keyboard. This app is an emulator that lets you play Janko layout on a computer keyboard, assess its benefits and just enjoy playing it.
Scratch
Minkowski sum visualizer, 2016
This is a tool that helps students to more deeply understand one of the basic concepts in economics (production possibilities sets) by visually demonstrating how to build the combined set from two given individual sets. (In math terms it is equivalent to Minkowski sum, or vector sum of two sets.)
I did this project in Scratch to look at what it is capable of.