Giter VIP home page Giter VIP logo

vue-auth-page's Introduction

Форма регистрации / авторизации

Реализовать форму входа/регистрации в некую закрытую информационную систему.

Используемые библиотеки и технологии Всё, что перечислено в данном списке, должно быть использовано при реализации

  • Vue
  • Typescript
  • vue-router
  • vuex
  • vue-property-decorator
  • vuex-class
  • vue-cli

Функциональные требования

  1. С главной пользователя должно редиректить на страницу /auth
  2. На странице /auth пользователь должен видеть форму авторизации с 2 полями (“ Телефон ” и “ Пароль ”), кнопку “ Войти ”, ссылку на страницу регистрации.
  3. Поле “ Телефон ” обязательно и должно валидироваться по таким правилам: в начале должно быть “+7”; допустимые символы: “+” и цифры; должно быть 12 символов, включая “+”.
  4. Поле “ Пароль ” обязательно и должно валидироваться по таким правилам: должна быть одна заглавная буква, одна маленькая буква, одна цифра и не меньше 8 символов.
  5. Валидация формы авторизации должна происходить на лету
  6. Если валидация не проходит, то под полем должно показываться сообщение о том, что поле заполнено некорректно
  7. При нажатии на кнопку “ Войти ” если поля введены некорректно , то должны показываться ошибки
  8. При нажатии на кнопку “ Войти ” если поля введены корректно , под формой должно появиться сообщение об успешном входе в формате “Вы вошли под номером +7 (999) ***-99-99”, где вместо 9 будут цифры из номера пользователя
  9. При нажатии на ссылку, ведущую на страницу регистрации, пользователя должно редиректить на страницу /register
  10. На странице /register пользователь должен видеть форму регистрации, состоящую из полей “ Имя ”, “ Фамилия ”, “ Отчество ”, “ Телефон ” и “ Пароль ”, кнопку “ Зарегистрироваться ” и ссылку на страницу авторизации
  11. Поля “ Имя ” и “ Фамилия ” обязательны и должны валидироваться по таким правилам: допускаются только русские буквы, не больше 15 символов.
  12. Поле “ Отчество ” необязательно, но если пользователь вводит, то должно валидироваться также как и “ Имя ” или “ Фамилия ”.
  13. Поля “ Телефон ” и “ Пароль ” валидируются также как на форме авторизации.
  14. Валидация полей формы регистрации должна происходить при смене фокуса
  15. Если валидация не проходит, то под полем должно показываться сообщение о том, что поле заполнено некорректно16. Пока человек вводит данные, под формой должно показываться сообщение “Вы пытаетесь зарегистрироваться под номером +7 (999) ***-99-99, как Имя Фамилия Отчество”, где вместо 9 будут выведены цифры номера пользователя, а вместо Имя - имя пользователя, приведенное к виду <Большая буква><маленькие буквы> (аналогично Фамилия и Отчество )
  16. При нажатии на кнопку “ Зарегистрироваться ”, если данные введены некорректно, должны показываться ошибки
  17. При нажатии на кнопку “ Зарегистрироваться ”, если данные введены корректно, то должно редиректить на /auth , в поле “ Телефон ” подставляется телефон из формы регистрации, внизу должно показываться сообщение “Вы зарегистрировались под номером +7 (999) ***-99-99, как Имя Фамилия Отчество” (формируется также как в пункте 16)
  18. При нажатии на ссылку, ведущую на страницу авторизации, пользователя должно редиректить на /auth

Требования к реализации

  1. Проект должен быть поднят через vue-cli, и быть написанным с помощью typescript + vue
  2. Должно быть несколько компонентов, реализованных через typescript классы
  3. Любые свойства классов, функции, объекты должны быть типизированы
  4. Должны быть использованы декораторы из vue-property-decorator
  5. Все данные должны храниться в store из vuex, в компонентах получаем информацию с помощью декораторов из vuex-class
  6. Для страниц /auth и /register должен использоваться vue-router
  7. Верстка не обязательна, но будет плюсом, если будет выглядеть красиво
  8. Код должен быть в git

vue-auth-page's People

Contributors

roterentev avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.