Giter VIP home page Giter VIP logo

shiny.reglog's People

Contributors

cainesap avatar statismike avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

shiny.reglog's Issues

Create tests with `testthat`

Create testthat tests for all functions that don't require shinyApp interactivity:

  • RegLog_txt / reglog_txt
  • DBI_tables_create / create_sqlite_db
  • gsheet_tables_create / create_gsheet_db

Correct typos in registration text

  • User ID and password should consist of 8~30 characters. For user ID every alphanumeric characters are valid. Password should contain at least three out of four following types of characters: big letter, small letter, number, special character.
  • You should have access to the provided e-mail address. After registration you will receive a confirmation e-mail. Moreover, if you ever forget your password you can reset it with reset code send to provided e-mail.

Please see corrected text below:

  • User ID and password should consist of 8~30 characters. For user ID any alphanumeric characters are valid. Password should contain at least three out of four of the following types of characters: capital letters, lowercase letters, numbers, special characters.
  • You should have access to the provided e-mail address. After registration you will receive a confirmation e-mail. Moreover, if you ever forget your password you can reset it with reset code sent to the provided e-mail.

Add dbConnector supporting MongoDB databases

As document-based NoSQL are popular with all sorts of small applications, I feel like there is also a need for supporting them.

Although they are more elastic in their schemas, there is also a possibility to use them for storing SQL-like, relational data, just like data created and menaged by shiny.reglog.

As MongoDB seems to be the most popular NoSQL ATM, first dbConnector will be created for its support. Possibilities for making general dbConnector for multiple NoSQL databases will also be explored.

Logout button

The feature that wasn't thought of initially, but may be handy - simple logout button.

Create seperate language object

Currently, the lines visible to the users are hard coded into their respective calls. It has numerous flaws:

  • the code is cluttered, hard to read and generally not-elegant
  • it makes the development of support for more languages hard

Refactor into `R6` based modules

R6 helps to mantain the code as clear as possible. Moreover, using R6 shiny modules makes interreactivity between the module and rest of the application straightforward.

Because of this, it is planned to refactor the whole logic and make the reglog system based on R6 classes initialized within the server.

As the package is in stable stage and is present on CRAN, old functions will get deprecated rather than removed.

Additional changes planned:

  • all changes in the state of internal logic will be trackable
  • the googlesheets4, RSQLite, emayili and gmailr dependencies will be removed
  • the default state will be implying the custom logic behind database and email sending defined by the user

Rework `reglog_txt` into `RegLog_txt`.

Every text that is appearing anywhere in the UI or in modalDialogs need to be unique object - even if there are duplicates. Will make more elastic for anyone who would like to customize something.

Support SQLite database encryption

Currently, the SQLite database used to keep the information of the users is not protected by any kind of hashing method. For securing it further such encryption should be added.

Encryption similar to used by shinymanager is planned

Email verification link

Hi @StatisMike,
This is a very useful library, thanks! I was wondering if it's possible to add an email verification link or code that allows us to verify that the registered user actually has access to that email? Similar to what is already done with the reset password feature.

Unpipe the whole code

Currently there is extensive use of pipe %>% in the code for the whole package. It is unadvisable to do so for the package to be accepted into CRAN, as it makes the code harder to debug.

Create tests with `shinyTest`

Create shinyTest tests for functions which need shiny interactivity.

  • RegLogSystem with RegLogEmayiliConnector and RegLogDBIConnector
  • RegLogSystem with RegLogGmailrConnector and RegLogGsheetConnector
  • login_server with db_method = "sqlite" and mail_method = "emayili
  • login_server with db_method = "gsheet" and mail_method = "gmailr`

Tests for deprecated system have been dropped. Manual testing was conducted.

Modify default modalDialog logic

Refactor all modals logic from using old modals_check to modals_check_n_show. Connected to #28

  • login_noInput
  • login_badId
  • login_badPass
  • login_success
  • register_noInput
  • register_nonValidId
  • register_nonValidEmail
  • register_nonValidPass
  • register_notIdenticalPass
  • register_existingId
  • register_existingEmail
  • register_success
  • credsEdit_noInput_pass
  • credsEdit_noInput_other
  • credsEdit_nonValidId
  • credsEdit_nonValidEmail
  • credsEdit_nonValidPass
  • credsEdit_notIdenticalPass
  • credsEdit_badId
  • credsEdit_badPass
  • credsEdit_existingId
  • credsEdit_existingEmail
  • credsEdit_success
  • resetPass_noInput_generate
  • resetPass_noInput_confirm
  • resetPass_nonValidPass
  • resetPass_notIdenticalPass
  • resetPass_badId
  • resetPass_codeGenerated
  • resetPass_nonValidCode
  • resetPass_success
  • logout_notLogIn
  • logout_success

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.