Skip to content

Commit a175807

Browse files
committed
Migrate all apps to shinyapps.io and remove Auth0
- Remove Auth0 authentication from all apps (now fully public) - Update deployment workflow to deploy all apps without Auth0 - Change app deployment names from -private to public names - Update all documentation links to shinyapps.io URLs - Update README technical stack section (removed Shinylive, added Shinyapps.io) - All apps now accessible at dalyanalytics.shinyapps.io
1 parent b9e59bc commit a175807

File tree

5 files changed

+60
-69
lines changed

5 files changed

+60
-69
lines changed

.github/workflows/deploy-shinyapps.yml

Lines changed: 7 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -59,27 +59,10 @@ jobs:
5959
fi
6060
fi
6161
62-
- name: Set up Auth0 config
63-
if: steps.determine-app.outputs.app_name != 'grant-research-assistant'
64-
run: |
65-
cd ${{ steps.determine-app.outputs.app_name }}
66-
67-
# Create _auth0.yml from template (only for apps that use Auth0)
68-
if [ "${{ steps.determine-app.outputs.app_name }}" == "donor-retention-calculator" ]; then
69-
APP_NAME="donor-retention-private"
70-
elif [ "${{ steps.determine-app.outputs.app_name }}" == "board-packet-generator" ]; then
71-
APP_NAME="board-packet-private"
72-
fi
73-
74-
cat > _auth0.yml << EOF
75-
name: $APP_NAME
76-
remote_url: 'https://${{ secrets.SHINYAPPS_ACCOUNT }}.shinyapps.io/$APP_NAME/'
77-
auth0_config:
78-
api_url: https://${{ secrets.AUTH0_DOMAIN }}
79-
credentials:
80-
key: ${{ secrets.AUTH0_CLIENT_ID }}
81-
secret: ${{ secrets.AUTH0_CLIENT_SECRET }}
82-
EOF
62+
# Auth0 disabled - all apps are now public
63+
# - name: Set up Auth0 config
64+
# run: |
65+
# echo "Auth0 authentication disabled - all apps deployed as public"
8366

8467
- name: Configure rsconnect
8568
run: |
@@ -89,10 +72,11 @@ jobs:
8972
run: |
9073
cd ${{ steps.determine-app.outputs.app_name }}
9174
75+
# All apps deployed as public (no -private suffix)
9276
if [ "${{ steps.determine-app.outputs.app_name }}" = "donor-retention-calculator" ]; then
93-
APP_NAME="donor-retention-private"
77+
APP_NAME="donor-retention-calculator"
9478
elif [ "${{ steps.determine-app.outputs.app_name }}" = "board-packet-generator" ]; then
95-
APP_NAME="board-packet-private"
79+
APP_NAME="board-packet-generator"
9680
elif [ "${{ steps.determine-app.outputs.app_name }}" = "grant-research-assistant" ]; then
9781
APP_NAME="grant-research-assistant"
9882
fi

README.md

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,13 @@ Stop paying expensive monthly subscriptions for generic software. These tools ar
99

1010
## 🎯 Available Tools
1111

12-
### [📊 Donor Retention Calculator](https://dalyanalytics.github.io/nonprofit-analytics-tools/donor-retention-calculator/)
12+
### [📊 Donor Retention Calculator](https://dalyanalytics.shinyapps.io/donor-retention-calculator/)
1313
- Analyze donor retention rates by cohort
1414
- Calculate lifetime value projections
1515
- Benchmark against industry standards
1616
- Upload your data or try sample dataset
1717

18-
### [📄 Board Packet Generator](https://dalyanalytics.github.io/nonprofit-analytics-tools/board-packet-generator/)
18+
### [📄 Board Packet Generator](https://dalyanalytics.shinyapps.io/board-packet-generator/)
1919
- Create professional board meeting materials
2020
- Executive summary with KPIs and financial charts
2121
- Editable agenda with drag-and-drop reordering
@@ -51,10 +51,11 @@ These tools solve real problems I've encountered in client work.
5151
## 🛠 Technical Stack
5252

5353
- **R/Shiny** for interactive applications
54-
- **Shinylive** for serverless deployment
55-
- **GitHub Pages** for complimentary hosting
54+
- **Shinyapps.io** for professional cloud hosting
55+
- **GitHub Actions** for automated deployment
5656
- **Plotly** for interactive visualizations
5757
- **DT** for data tables
58+
- **MapLibre GL** for interactive maps
5859

5960
## 📈 Want Custom Solutions?
6061

board-packet-generator/app.R

Lines changed: 22 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -26,25 +26,28 @@ is_shinylive <- function() {
2626
})
2727
}
2828

29-
# Conditional auth0 loading
30-
if (!is_shinylive() && file.exists("_auth0.yml")) {
31-
tryCatch({
32-
library(auth0)
33-
options(auth0_config_file = "_auth0.yml")
34-
use_auth <- TRUE
35-
cat("✓ Auth0 loaded successfully\n")
36-
}, error = function(e) {
37-
cat("⚠ Auth0 not available, running without authentication\n")
38-
use_auth <- FALSE
39-
})
40-
} else {
41-
use_auth <- FALSE
42-
if (is_shinylive()) {
43-
cat("✓ Shinylive environment detected - running in public mode\n")
44-
} else {
45-
cat("⚠ No auth0 config found - running without authentication\n")
46-
}
47-
}
29+
# Auth0 disabled - running as public app
30+
# Conditional auth0 loading (COMMENTED OUT - app is now fully public)
31+
# if (!is_shinylive() && file.exists("_auth0.yml")) {
32+
# tryCatch({
33+
# library(auth0)
34+
# options(auth0_config_file = "_auth0.yml")
35+
# use_auth <- TRUE
36+
# cat("✓ Auth0 loaded successfully\n")
37+
# }, error = function(e) {
38+
# cat("⚠ Auth0 not available, running without authentication\n")
39+
# use_auth <- FALSE
40+
# })
41+
# } else {
42+
# use_auth <- FALSE
43+
# if (is_shinylive()) {
44+
# cat("✓ Shinylive environment detected - running in public mode\n")
45+
# } else {
46+
# cat("⚠ No auth0 config found - running without authentication\n")
47+
# }
48+
# }
49+
use_auth <- FALSE
50+
cat("🌐 Running as public app (Auth0 disabled)\n")
4851

4952
# Professional corporate color scheme
5053
corporate_colors <- list(

donor-retention-calculator/app.R

Lines changed: 22 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -24,25 +24,28 @@ is_shinylive <- function() {
2424
})
2525
}
2626

27-
# Conditional auth0 loading
28-
if (!is_shinylive() && file.exists("_auth0.yml")) {
29-
tryCatch({
30-
library(auth0)
31-
options(auth0_config_file = "_auth0.yml")
32-
use_auth <- TRUE
33-
cat("✓ Auth0 loaded successfully\n")
34-
}, error = function(e) {
35-
cat("⚠ Auth0 not available, running without authentication\n")
36-
use_auth <- FALSE
37-
})
38-
} else {
39-
use_auth <- FALSE
40-
if (is_shinylive()) {
41-
cat("✓ Shinylive environment detected - running in public mode\n")
42-
} else {
43-
cat("⚠ No auth0 config found - running without authentication\n")
44-
}
45-
}
27+
# Auth0 disabled - running as public app
28+
# Conditional auth0 loading (COMMENTED OUT - app is now fully public)
29+
# if (!is_shinylive() && file.exists("_auth0.yml")) {
30+
# tryCatch({
31+
# library(auth0)
32+
# options(auth0_config_file = "_auth0.yml")
33+
# use_auth <- TRUE
34+
# cat("✓ Auth0 loaded successfully\n")
35+
# }, error = function(e) {
36+
# cat("⚠ Auth0 not available, running without authentication\n")
37+
# use_auth <- FALSE
38+
# })
39+
# } else {
40+
# use_auth <- FALSE
41+
# if (is_shinylive()) {
42+
# cat("✓ Shinylive environment detected - running in public mode\n")
43+
# } else {
44+
# cat("⚠ No auth0 config found - running without authentication\n")
45+
# }
46+
# }
47+
use_auth <- FALSE
48+
cat("🌐 Running as public app (Auth0 disabled)\n")
4649

4750
# Generate sample data
4851
set.seed(123)

index.html

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ <h3>Donor Retention Calculator</h3>
138138
<li>Industry benchmarks</li>
139139
<li>Segmentation insights</li>
140140
</ul>
141-
<a href="./donor-retention-calculator/" class="btn btn-primary w-full" target="_blank">
141+
<a href="https://dalyanalytics.shinyapps.io/donor-retention-calculator/" class="btn btn-primary w-full" target="_blank">
142142
Launch Calculator →
143143
</a>
144144
</div>
@@ -158,7 +158,7 @@ <h3>Board Packet Generator</h3>
158158
<li>Impact visualizations</li>
159159
<li>Executive dashboards</li>
160160
</ul>
161-
<a href="./board-packet-generator/" class="btn btn-primary w-full" target="_blank">
161+
<a href="https://dalyanalytics.shinyapps.io/board-packet-generator/" class="btn btn-primary w-full" target="_blank">
162162
Launch Generator →
163163
</a>
164164
</div>
@@ -298,8 +298,8 @@ <h4>Jasmine Daly</h4>
298298
<div class="footer-section">
299299
<h4>Tools</h4>
300300
<ul class="list-unstyled">
301-
<li class="mb-sm"><a href="./donor-retention-calculator/" class="footer-link">Donor Retention Calculator</a></li>
302-
<li class="mb-sm"><a href="./board-packet-generator/" class="footer-link">Board Packet Generator</a></li>
301+
<li class="mb-sm"><a href="https://dalyanalytics.shinyapps.io/donor-retention-calculator/" class="footer-link">Donor Retention Calculator</a></li>
302+
<li class="mb-sm"><a href="https://dalyanalytics.shinyapps.io/board-packet-generator/" class="footer-link">Board Packet Generator</a></li>
303303
<li class="mb-sm"><a href="https://dalyanalytics.shinyapps.io/grant-research-assistant/" class="footer-link">Grant Research Assistant</a></li>
304304
</ul>
305305
</div>

0 commit comments

Comments
 (0)