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 1 contest.
Entries with serious issues will not be able to win the contest, but even minor issues might be important for overall results.
Voting
Comments
Handmaded with ❤️ from scratch.
Feature list:
- Own MTProto implementation. Works completely asynchronous with Web Workers and uses the fastest (rusha for sha1, forge for sha256) ever available hashing solutions: https://dominictarr.github.io/crypto-bench/
- Supports PFS. Updates the temporary auth key every two hours. Follows the security guidelines.
- All the scrollable content is rendered partially. You can scroll up a whole message history or the dialog list without loosing any performance.
- The dialog list and message history are animated. It uses FLIP technique for smooth content appearing, removing and shuffling.
- The gzipped JS bundle size, including the workers and the tl-schema, is 231kb. The whole app zip size is 308kb for content and 938kb for favicons.
Made as a part of the master degree diploma work for BMSTU IC8 Information Security.
Feature list:
- Own MTProto implementation. Works completely asynchronous with Web Workers and uses the fastest (rusha for sha1, forge for sha256) ever available hashing solutions: https://dominictarr.github.io/crypto-bench/
- Supports PFS. Updates the temporary auth key every two hours. Follows the security guidelines.
- All the scrollable content is rendered partially. You can scroll up a whole message history or the dialog list without loosing any performance.
- The dialog list and message history are animated. It uses FLIP technique for smooth content appearing, removing and shuffling.
- The gzipped JS bundle size, including the workers and the tl-schema, is 231kb. The whole app zip size is 308kb for content and 938kb for favicons.
Made as a part of the master degree diploma work for BMSTU IC8 Information Security.
You can use localStorage.setItem('debugmt', 1) in a browser developer console to view the MTProto connection logs.
Known Issues due to lack of time:
- By default, DC 2 is set. If you provide any non DC 2 phone number, the app will take some time to switch DC and create new keys pair.
- Message deleting and editing is not implemented yet.
- New dialogs won't show at the dialogs list.
- Short chat messages and short self messages updates are not implemented yet.
- The dialog and messages loaders are freezing.
- Sometimes there can be issues with temporary and permanent keys generation / binding. You can use client.svc.meta = {} and localStorage.uid = 0 to force an authorization data removal.
Known Issues due to lack of time:
- By default, DC 2 is set. If you provide any non DC 2 phone number, the app will take some time to switch DC and create new keys pair.
- Message deleting and editing is not implemented yet.
- New dialogs won't show at the dialogs list.
- Short chat messages and short self messages updates are not implemented yet.
- The dialog and messages loaders are freezing.
- Sometimes there can be issues with temporary and permanent keys generation / binding. You can use client.svc.meta = {} and localStorage.uid = 0 to force an authorization data removal.
You have not added any comments yet...
by rating
Issues
Приложение использует собственную реализацию протокола (transferred size: 270KB), высокая скорость работы приложения, а также соответствие дизайну предоставленных макетов в целом позволяют высоко оценить работу.
Конкурсное задание выполнено практически полностью, однако не завершена работа над загрузкой фото профиля при регистрации. Из реализации дополнительных бонусов, не отмеченных в задании, отметим поддержку некоторых типов медиа, прогрессы при загрузке, кеширование сообщений.
В процессе тестирования выявлены следующие недостатки:
– Некоторые детали дизайна некорректны: в шапке открытого чата нет кнопок, в каналах сохраняется поле ввода, логотип канала отображается напротив сообщений, кнопка ‘Next’ появляется до введения валидного номера .
– Медленная загрузка чатов.
Недоработки экрана входа:
– Префиксы некоторых стран содержат лишний символ, что в итоге приводит к невозможности входа (использование пункта 'Other' в выпадающем списке стран решает эту проблему);
– США как страна по умолчанию;
– Редактирование номера приводит к полному сбросу данных;
– На экране ввода кода нет автоматической проверки введёного кода и фильтрации поля ввода.
Конкурсное задание выполнено практически полностью, однако не завершена работа над загрузкой фото профиля при регистрации. Из реализации дополнительных бонусов, не отмеченных в задании, отметим поддержку некоторых типов медиа, прогрессы при загрузке, кеширование сообщений.
В процессе тестирования выявлены следующие недостатки:
– Некоторые детали дизайна некорректны: в шапке открытого чата нет кнопок, в каналах сохраняется поле ввода, логотип канала отображается напротив сообщений, кнопка ‘Next’ появляется до введения валидного номера .
– Медленная загрузка чатов.
Недоработки экрана входа:
– Префиксы некоторых стран содержат лишний символ, что в итоге приводит к невозможности входа (использование пункта 'Other' в выпадающем списке стран решает эту проблему);
– США как страна по умолчанию;
– Редактирование номера приводит к полному сбросу данных;
– На экране ввода кода нет автоматической проверки введёного кода и фильтрации поля ввода.
Google Chrome 78.0.3904, macOS 10.15.2
+ Great idea of tg logo display before page is ready.
+ Cool that country autocompletes not only by name, but by code too.
- It doesn't let you start the number with code, changing country by it. Can't edit code in number.
+ Cool that country autocompletes not only by name, but by code too.
- It doesn't let you start the number with code, changing country by it. Can't edit code in number.
Login Page:
- when select country scroll appears on a moment
- no country images
- if you type name of country and press arrow key and press enter, there will be unexpected country (see video)
- hover on country in select isn't implemented
- it'd be better if after changing phone number, input won't be cleared
- input's caret should be blue when input is focused, and red when input is wrong (according to mockups)
- when phone number isn't completed 'Next' button shouldn't be visible (according to mockups)
- can't change phone code. It's important as many users don't use country select in real at all
- it'd a good to invoke help.getNearestDc and select country according to current user's location.
* I've faced with login failure (endless auth.sendCode performing) a couple of times (one of them see in video, console included only migration message)
- when select country scroll appears on a moment
- no country images
- if you type name of country and press arrow key and press enter, there will be unexpected country (see video)
- hover on country in select isn't implemented
- it'd be better if after changing phone number, input won't be cleared
- input's caret should be blue when input is focused, and red when input is wrong (according to mockups)
- when phone number isn't completed 'Next' button shouldn't be visible (according to mockups)
- can't change phone code. It's important as many users don't use country select in real at all
- it'd a good to invoke help.getNearestDc and select country according to current user's location.
* I've faced with login failure (endless auth.sendCode performing) a couple of times (one of them see in video, console included only migration message)
Main Page:
- it seems some heavy operations are processed in main thread. Sometimes I have freezes when select a dialog (try to select consistently 5+ dialogs)
- all users are online
- message creation box shouldn't be visible in broadcast channels (like Telegram Contests)
- probably it'll be better user can't select dialog's title
- there aren't checks in my messages
- there aren't dates in photo messages
- dialog with myself should be called 'Saved Messages' (when it's selected)
- default scroll
* Nice images preload
- it seems some heavy operations are processed in main thread. Sometimes I have freezes when select a dialog (try to select consistently 5+ dialogs)
- all users are online
- message creation box shouldn't be visible in broadcast channels (like Telegram Contests)
- probably it'll be better user can't select dialog's title
- there aren't checks in my messages
- there aren't dates in photo messages
- dialog with myself should be called 'Saved Messages' (when it's selected)
- default scroll
* Nice images preload
Nobody added any issues yet...