Info
WARNING! Clicking "Open Website" will launch a third-party app, use at your own risk. We do not recommend logging in with your main account.
Testing and Issues
You can test this app and submit issues during the testing period of the JavaScript Contest, Stage 2 contest.
Entries with serious issues will not be able to win the contest, but even minor issues might be important for overall results.
Voting
by rating
Issues
Конкурсное задание выполнено не до конца. Из всех типов медиа в приложении поддержаны только фотографии, не реализован фотопросмотрщик. Работа над поиском не завершена — найденные сообщения могут дублироваться, а прогресс-бар зависать.
Скорость работы приложения оказалась ниже ожидаемой в части загрузки чатов и медиа, при просмотре анимированных стикеров. Есть незначительные отклонения от предоставленного дизайна.
В ходе тестирования работы было выявлено множество существенных недостатков:
– Проблемы со входом в приложение: https://contest.com/javascript-web-2/entry1306#issue10676;
– Периодически приложение не переходит на экран ввода кода после того, как номер был подтверждён – при этом в другую сессию приходит свежий код;
– После успешного входа приложение может разлогинить аккаунт сразу после попадания на экран чатов;
– Проблема с некоторыми наполненными аккаунтами – при входе в них бесконечная загрузка, в консоли появляется Cannot read property 'split' of undefined.
– Некоторые чаты могут не открываться, при этом прогресс-бар бесконечно вращается, а в Shared Media отображается содержимое этих чатов;
– При смене чатов случайным образом может появляется ошибка “123”;
– Третья колонка заслоняет экран чата;
– Не поддержана панель стикеров;
– В приложении нет переноса строки при отправке сообщения.
Перечисленные недоработки и незавершенное конкурсное задание не позволяют данной работе занять призовое место.
Скорость работы приложения оказалась ниже ожидаемой в части загрузки чатов и медиа, при просмотре анимированных стикеров. Есть незначительные отклонения от предоставленного дизайна.
В ходе тестирования работы было выявлено множество существенных недостатков:
– Проблемы со входом в приложение: https://contest.com/javascript-web-2/entry1306#issue10676;
– Периодически приложение не переходит на экран ввода кода после того, как номер был подтверждён – при этом в другую сессию приходит свежий код;
– После успешного входа приложение может разлогинить аккаунт сразу после попадания на экран чатов;
– Проблема с некоторыми наполненными аккаунтами – при входе в них бесконечная загрузка, в консоли появляется Cannot read property 'split' of undefined.
– Некоторые чаты могут не открываться, при этом прогресс-бар бесконечно вращается, а в Shared Media отображается содержимое этих чатов;
– При смене чатов случайным образом может появляется ошибка “123”;
– Третья колонка заслоняет экран чата;
– Не поддержана панель стикеров;
– В приложении нет переноса строки при отправке сообщения.
Перечисленные недоработки и незавершенное конкурсное задание не позволяют данной работе занять призовое место.
macOS 10.15.3, Chrome 80.0.3987.
To get around Chromes security care, it's enough just to add "http://entry1306-jsround2.usercontest.com/" to "Insecure origins treated as secure" in "chrome://flags" as described here https://contest.com/javascript-web-2/entry1300#issue10674 . With mine it will be "http://entry1300-jsround2.usercontest.com,http://entry1306-jsround2.usercontest.com"
D
Main info:
- support modern browser (from support webcomponents, textencoder/decoder, web crypto pbkdf2)
- show info block for unsupport browsers
- using webworker for crypto and hash functions
- support screen size from 1024px width
- lazy loading resources (split auth and app resources), display content after they load (no jerking when loading styles, icons, fonts like some other participants)
- only auth screen transfer 185kb gzip resources includes fonts, assets (with countries flags spritesheet)
- only app screen transfer 165kb gzip resources includes messages background image
- from auth screen to app screen without page realod transfer 276kb gzip resources
- tgs monkey anmations optimized and glued to one tgs file only 18.2kb size
- used dependencies: gunzip and lottie (lottie bundle optimized for support only tgs features from 147kb to 67kb non-gzipped)
- custom scrollbar used for all components
- fonts splited by unicode ranges, so loaded only needed
- support modern browser (from support webcomponents, textencoder/decoder, web crypto pbkdf2)
- show info block for unsupport browsers
- using webworker for crypto and hash functions
- support screen size from 1024px width
- lazy loading resources (split auth and app resources), display content after they load (no jerking when loading styles, icons, fonts like some other participants)
- only auth screen transfer 185kb gzip resources includes fonts, assets (with countries flags spritesheet)
- only app screen transfer 165kb gzip resources includes messages background image
- from auth screen to app screen without page realod transfer 276kb gzip resources
- tgs monkey anmations optimized and glued to one tgs file only 18.2kb size
- used dependencies: gunzip and lottie (lottie bundle optimized for support only tgs features from 147kb to 67kb non-gzipped)
- custom scrollbar used for all components
- fonts splited by unicode ranges, so loaded only needed
D
Protocol features:
- to use connection to test servers add #testmode hash to url
- custom websocket implementation of mtproto with last layer
- lazy connection to all dc
- remove unused methods and constructors from tl schema (app size optimization)
- for crypto using browser api for maximum, except aes for implementation of aes-ige
- working correctly with all dc and handling migration and other errors
- reconnect in case of lack of internet connection,
- displaying information about the inaccessibility of the Internet, or telegram blocking in a specific region on the authorization screen
- app screen have not indicator but reconnect is support to
- correct updates handling from https://core.telegram.org/api/updates with recovering gaps
- to use connection to test servers add #testmode hash to url
- custom websocket implementation of mtproto with last layer
- lazy connection to all dc
- remove unused methods and constructors from tl schema (app size optimization)
- for crypto using browser api for maximum, except aes for implementation of aes-ige
- working correctly with all dc and handling migration and other errors
- reconnect in case of lack of internet connection,
- displaying information about the inaccessibility of the Internet, or telegram blocking in a specific region on the authorization screen
- app screen have not indicator but reconnect is support to
- correct updates handling from https://core.telegram.org/api/updates with recovering gaps
D
Auth screen:
- all problems described in stage 1 are fixed
- auto-detection user country and its selection in the drop-down list from the help.getNearestDc method
- processing and outputting information about all kinds of errors
- correct formatting of phone numbers depending on the selected country
- auto-detection of the country as you enter the phone number
- correct country change if not correctly defined (for example, for USA and Canada with the same +1 code)
- initializing the connection before loading the rest of the resources
- all problems described in stage 1 are fixed
- auto-detection user country and its selection in the drop-down list from the help.getNearestDc method
- processing and outputting information about all kinds of errors
- correct formatting of phone numbers depending on the selected country
- auto-detection of the country as you enter the phone number
- correct country change if not correctly defined (for example, for USA and Canada with the same +1 code)
- initializing the connection before loading the rest of the resources
D
Auth screen 2:
- added functionality 2fa
- correct and seamless animation of a monkey
- displaying flags is not like emoji and is correct on all systems (for example, on windows instead of flags 2-letter identifiers of countries are displayed for many other participants who used emoji)
- when you return to the editing screen the phone number after sending the code, the auth.cancelCode method is called
- display of service rules during registration
- upload and crop photos during registration
- maximally matches the provided layouts with cool animations
- added functionality 2fa
- correct and seamless animation of a monkey
- displaying flags is not like emoji and is correct on all systems (for example, on windows instead of flags 2-letter identifiers of countries are displayed for many other participants who used emoji)
- when you return to the editing screen the phone number after sending the code, the auth.cancelCode method is called
- display of service rules during registration
- upload and crop photos during registration
- maximally matches the provided layouts with cool animations
D
App screen:
- maximally matches the provided layouts
- handling and display new state of dialogs updates: change folder; messages updates; unread marks; read history; user typing; unreaded count; new dialog with user, new chat, new channel; delete dialogs
- handling and display new state of messages updates: new, edit, delete
- handling and display new state of peers updates: change status, name, phone, photo
- local caching dialogs, users info, photos, images, stickers, files
- dialogs list fetch only after auth, after dislogs list state changings by updates
- maximally matches the provided layouts
- handling and display new state of dialogs updates: change folder; messages updates; unread marks; read history; user typing; unreaded count; new dialog with user, new chat, new channel; delete dialogs
- handling and display new state of messages updates: new, edit, delete
- handling and display new state of peers updates: change status, name, phone, photo
- local caching dialogs, users info, photos, images, stickers, files
- dialogs list fetch only after auth, after dislogs list state changings by updates
D
App screen 2:
- for no avatar photo placeholders used colors from offical telegram app
- dialogs change sort, add and remove animations
- dialogs unreded count and unreaded mark animation
- dialogs list and messages list have overlays on top and bottom with transparent gradient to background
- correct messages bubbles corders border radius and sended photo without caption bubble corner crop
- messages sending form new line by ctrl+enter
- for no avatar photo placeholders used colors from offical telegram app
- dialogs change sort, add and remove animations
- dialogs unreded count and unreaded mark animation
- dialogs list and messages list have overlays on top and bottom with transparent gradient to background
- correct messages bubbles corders border radius and sended photo without caption bubble corner crop
- messages sending form new line by ctrl+enter
D
Additional information:
- in this stage i concentrated my strength on size, attention to detail and speed, so i have not implement addition functional
- of the necessary functionality for stage 2, only sending stickers is not implemented
- sometimes there is a bug with a logout immediately after authorization, in this case, try to clear localstorage and try again
- in this stage i concentrated my strength on size, attention to detail and speed, so i have not implement addition functional
- of the necessary functionality for stage 2, only sending stickers is not implemented
- sometimes there is a bug with a logout immediately after authorization, in this case, try to clear localstorage and try again
> Hi! Thanks for issue. Please see 1st and 2nd issues to fix this
Ok, same error as Merry Ant then. https://xooler.github.io/telegram-js/#testmode does not send any code for my number
Ok, same error as Merry Ant then. https://xooler.github.io/telegram-js/#testmode does not send any code for my number
MacBook Pro 13", Chrome 80.0.3987.116
Nobody added any issues yet...