{"id":20665665,"url":"https://github.com/thinkr-open/wedding","last_synced_at":"2025-04-08T03:19:56.736Z","repository":{"id":43098513,"uuid":"359794302","full_name":"ThinkR-open/wedding","owner":"ThinkR-open","description":"Shiny app with custom css to prepare and manage a wedding","archived":false,"fork":false,"pushed_at":"2025-02-25T15:42:39.000Z","size":48237,"stargazers_count":60,"open_issues_count":2,"forks_count":21,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-03-29T10:22:01.122Z","etag":null,"topics":["thinkr-not-maintained"],"latest_commit_sha":null,"homepage":"http://connect.thinkr.fr/wedding","language":"R","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ThinkR-open.png","metadata":{"files":{"readme":"README.Rmd","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-04-20T11:41:51.000Z","updated_at":"2025-02-05T14:09:01.000Z","dependencies_parsed_at":"2022-09-13T06:51:47.456Z","dependency_job_id":"460fd086-04f7-40c9-94c1-82ea7682ec5a","html_url":"https://github.com/ThinkR-open/wedding","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ThinkR-open%2Fwedding","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ThinkR-open%2Fwedding/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ThinkR-open%2Fwedding/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ThinkR-open%2Fwedding/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ThinkR-open","download_url":"https://codeload.github.com/ThinkR-open/wedding/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247767239,"owners_count":20992548,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["thinkr-not-maintained"],"created_at":"2024-11-16T19:33:09.197Z","updated_at":"2025-04-08T03:19:56.708Z","avatar_url":"https://github.com/ThinkR-open.png","language":"R","funding_links":[],"categories":[],"sub_categories":[],"readme":"---\noutput: github_document\n---\n\n\u003c!-- README.md is generated from README.Rmd. Please edit that file --\u003e\n\n```{r, include = FALSE}\nknitr::opts_chunk$set(\n  collapse = TRUE,\n  comment = \"#\u003e\",\n  fig.path = \"man/figures/README-\",\n  out.width = \"100%\"\n)\nlibrary(emo)\n```\n\n# wedding \u003cimg src=\"man/figures/logo.png\" align=\"right\" alt=\"\" width=\"120\" /\u003e\n\n\u003c!-- badges: start --\u003e\n[![R-CMD-check](https://github.com/ThinkR-open/wedding/workflows/R-CMD-check/badge.svg)](https://github.com/ThinkR-open/wedding/actions)\n[![Lifecycle: experimental](https://img.shields.io/badge/lifecycle-experimental-orange.svg)](https://lifecycle.r-lib.org/articles/stages.html#experimental)\n\u003c!-- badges: end --\u003e\n\n{wedding} helps you to prepare and manage your wedding `r emo::ji(\"bride_with_veil\")``r emo::ji(\"bride_with_veil\")` - `r emo::ji(\"bride_with_veil\")``r emo::ji(\"man_in_tuxedo\")` - `r emo::ji(\"man_in_tuxedo\")``r emo::ji(\"man_in_tuxedo\")`\n\n## Demo\n\nAn example of the app is available here: http://connect.thinkr.fr/wedding\n\nLogin to access the app: _welcome_ \u003cbr /\u003e\nPassword to access the app: _bigday_ \u003cbr /\u003e\nPassword to access the tab dedicated to brides/grooms: _onlyforbride_\n\n```{r echo=FALSE}\nknitr::include_graphics(\"man/figures/home-page.png\")\n```\n\nYou will find below how to run this demo app from RStudio Cloud.\n\n## Highlights\n\n- Secure access via a login and password authentication system\n- Information about the wedding day (schedule, accomodation, etc.)\n- RSVP feature where guests can specify their presence at the different times of the wedding, their choice for the diner menu and their diet - 2 types of RSVP features are proposed here (see additional details in the RSVP feature section of this README)\n- Dashboard - only accessible with login and password - where bride/grooms can manage the preparations for their wedding (guests, expenses, table plan)\n- Data stored in Google sheets\n- Design in line with the wedding announcement (colors, fonts, etc.)\n\n## Meaning of the tabs\n\n- *Accueil*: Home\n- *Confirmer ma venue*: Confirm my presence\n- *Programme de la journée*: Program of the day\n- *Lieu du mariage*: Location of the wedding\n- *Hébergements*: Accommodations\n- *Témoins*: Witnesses\n- *Covid*: Covid rules\n- *Espace des mariés*: Groom's area (expenses, guests, menu, `{ggplot2}` seating plan)\n\n```{r echo=FALSE}\nknitr::include_graphics(\"man/figures/seating-plan-page.png\")\n```\n\n## Data\n\nThe application is based on two datasets stored on Google Drive. They will be **updated according to the user's navigation in the app**.\n\n```{r echo=FALSE, out.width='70%', fig.align='center'}\nknitr::include_graphics(\"man/figures/data-examples.png\")\n```\n\n- **data_guests**: contains information about your guests (name, attendance at the vin d'honneur, attendance at the dinner, attendance at the return on Sunday lunch, special diet, etc.).\n- **data_expenses**: contains information about the wedding expenses (venue, caterer, groom's outfit, wedding rings, etc.)\n\nStructure of the datasets can be explored with:\n\n``` r\n# Install and load {wedding} package\n# install.packages(\"remotes\")\nremotes::install_github(\"ThinkR-open/wedding\")\nlibrary(wedding)\n\n# View data_expenses\ndata(\"data_expenses_example\")\ndata_expenses_example\n\n# View data_guests\ndata(\"data_guests_example\")\ndata_guests_example\n```\n\nRaw toy datasets can be accessed directly here: \n\n- [**data_guests**](https://docs.google.com/spreadsheets/d/1uCENmsM7XEcqE_ae80uYUMU6EA_-ozKqHyGJXHJHDiU/edit?usp=sharing)\n- [**data_expenses**](https://docs.google.com/spreadsheets/d/1Mb6QPB2G2Msy-K9xnU6Cs8qJ32i5eMdTvY9hh1mJwKw/edit?usp=sharing)\n\n## RSVP feature\n\n2 types of features are proposed here :\n\n- You can create your guest list beforehand. Your spreadsheet is pre-filled. The guests will be asked to select their first name from a **drop-down list**. *This is the default feature for the app.*\n\n```{r echo=FALSE, out.width='70%', fig.align='center'}\nknitr::include_graphics(\"man/figures/rsvp_list.png\")\n```\n\n- Or you do not create your guest list beforehand. At the beginning, your spreadsheet is empty. In this case, the guests will be asked to indicate their first name in a **free text zone**. You will need to go to the spreadsheet regularly to associate guests to a table in your seating plan. \n\n```{r echo=FALSE, out.width='70%', fig.align='center'}\nknitr::include_graphics(\"man/figures/rsvp_text.png\")\n```\n\n\u003cbr/\u003e\n\n#### To use the non pre-filled list and the free text zone:\n\n- Define an extra environment variable: \n``` r\nSys.setenv(USE_PREFILLED_DATA_GUEST = \"no\")\n```\n\n- Call your spreadsheet in Google Drive **data_guests_not_pre_filled**, not *data_guests* (default). A raw toy dataset can be accessed directly here: [**data_guests_not_pre_filled**](https://docs.google.com/spreadsheets/d/1qJo_UiHx0qjjqEncT2NCYAoFMycozKxrShGcun7Qokw/edit?usp=sharing)\n\n## Run the demo app from RStudio Cloud\n\n- Save the two toy datasets (see above) in your Google Drive storage\n- Acess the project stored in RStudio Cloud: https://rstudio.cloud/project/2548794\n- In Git tab, check that you are in the *main* branch and pull the latest version of the branch\n- Install `{wedding}`\n\n``` r\nremotes::install_github(\"ThinkR-open/wedding\")\n```\n\n- Create environment variables mandatory for the app\n\n``` r\nSys.setenv(GOOGLE_MAIL = \"wedding.r.package@gmail.com\") # Replace wedding.r.package@gmail.com by your gmail adress\nSys.setenv(LOGIN_USER = \"welcome\")\nSys.setenv(PWD_USER = \"bigday\")\nSys.setenv(PWD_COUPLE = \"onlyforbride\")\nSys.setenv(IMG_BACKGROUND = \"wedding-background-demo-compressed.jpg\")\n```\n\n- Create and store the credentials for Google account - A popup will open, and you will be asked to write your password - This will create a token and will store it in a .secrets folder\n\n``` r\n# install.packages(c(\"gargle\", \"googledrive\"))\noptions(gargle_oauth_cache = \".secrets\")\noptions(gargle_quiet = FALSE)\ngoogledrive::drive_auth(cache = \".secrets\", \n                        email = Sys.getenv(\"GOOGLE_MAIL\"))\n```\n\n- Run the demo app\n\n``` r\nwedding::run_app()\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthinkr-open%2Fwedding","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthinkr-open%2Fwedding","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthinkr-open%2Fwedding/lists"}