52 Technologies in 2016 - Deployment & Usage Guide
This repository contains 42 weekly tutorials covering diverse technology stacks. Each week is a standalone project located in its own directory (e.g., 01-finatra/, 28-ionic/). This guide covers general repository setup and specific deployment instructions for the full-stack Ionic application (Week 28).
1. Prerequisites
Base Requirements (All Weeks)
- Git 2.0+
- GitHub Account (for contributing or cloning)
Language-Specific Runtimes
For Scala Weeks (01, 02, 03, 04, 05, 06, 10):
- Java JDK 8 or 11 (OpenJDK recommended)
- SBT 0.13.x or 1.x (Scala build tool)
- Scala 2.11+
For Week 07 (Hugo):
- Go 1.5+
- Hugo 0.15+ static site generator
For Week 08 (CoreOS):
- Docker 1.9+
- AWS CLI (configured with credentials)
- etcdctl (for cluster management)
For Week 09 (Google Cloud Vision):
- Google Cloud Platform account
- gcloud CLI tool
For Week 28 (Ionic - Full Stack App):
- Node.js 4.x or 5.x (Legacy - see troubleshooting for modern versions)
- npm 2.x or 3.x
- Ionic CLI 1.x/2.x:
npm install -g ionic cordova - Android SDK (for Android builds) or Xcode (for iOS builds)
2. Installation
Clone the Repository
git clone https://github.com/shekhargulati/52-technologies-in-2016.git
cd 52-technologies-in-2016
Week-Specific Setup
General Pattern (Most Weeks):
cd [week-number]-[technology-name]
# Example: cd 01-finatra
cat README.md # Follow specific instructions for that week
Week 28 (Ionic DailyReads - Full Stack):
cd 28-ionic/dailyreads
# Setup Backend
cd backend
npm install # If Node.js backend
# OR follow specific README if Scala/Java backend
# Setup Mobile App
cd ../mobileapp
npm install
bower install # If bower.json exists
ionic state restore # Restore Cordova plugins/platforms
3. Configuration
Week 09: Google Cloud Vision
Create 09-cloudvision/src/main/resources/application.conf:
google {
cloud {
vision {
api-key = "YOUR_API_KEY_HERE"
}
}
}
Week 28: DailyReads Configuration
Edit 28-ionic/dailyreads/mobileapp/www/js/app.js or config.js:
angular.module('app', ['ionic'])
.constant('API_ENDPOINT', {
url: 'http://localhost:8080/api' // Change to production backend URL
});
If using Google Cloud Vision in Week 28:
.constant('GOOGLE_CLOUD_VISION_API_KEY', 'your-api-key-here');
Database Configuration (Weeks 04, 05 - Slick)
Edit application.conf in respective week directories:
database = {
driver = "org.postgresql.Driver"
url = "jdbc:postgresql://localhost:5432/mydb"
user = "dbuser"
password = "dbpassword"
}
4. Build & Run
Development Mode
Scala Projects (SBT):
cd [week-directory]
sbt run
# Access at http://localhost:8080 or port specified in tutorial
Week 07 (Hugo):
cd 07-hugo/myblog
hugo server --bind=0.0.0.0 --port=1313 --watch
Week 28 (Ionic):
# Terminal 1 - Backend
cd 28-ionic/dailyreads/backend
npm start # or sbt run / python app.py depending on backend stack
# Terminal 2 - Mobile App
cd 28-ionic/dailyreads/mobileapp
ionic serve --lab # Opens browser with iOS/Android preview
Production Build
Scala Projects:
sbt assembly # Creates fat JAR in target/scala-*/
# Or
sbt docker:publishLocal # If Docker plugin configured
Week 28 Mobile App:
cd 28-ionic/dailyreads/mobileapp
# Android
ionic build android --release
# APK generated at platforms/android/build/outputs/apk/
# iOS (Mac only)
ionic build ios --release
# Open Xcode project at platforms/ios/ to sign and archive
5. Deployment
Static Sites (Week 07 - Hugo)
Deploy to GitHub Pages, Netlify, or AWS S3:
cd 07-hugo/myblog
hugo # Generates public/ folder
# Deploy public/ folder to hosting provider
Scala Applications (Weeks 01, 04, 10)
Heroku:
heroku create
git subtree push --prefix 01-finatra heroku master
Docker (Week 08 - CoreOS):
cd 08-coreos
docker build -t myapp .
docker run -p 8080:8080 myapp
AWS EC2 with CoreOS:
Follow the cloud-config.yaml in Week 08 directory to configure fleet units.
Week 28 (Ionic Full Stack)
Backend Options:
- Heroku: Add
Procfilewithweb: node server.jsorweb: target/universal/stage/bin/myapp - AWS Elastic Beanstalk:
eb initandeb deploy - DigitalOcean: Use Docker or systemd service
Mobile App:
- Ionic View:
ionic upload(legacy) or use Ionic Appflow - App Stores:
ionic build ios --prod --release # Then Archive in Xcode ionic build android --prod --release # Then sign APK
6. Troubleshooting
Legacy Dependency Issues (2016 Codebase)
Problem: npm install fails with Node 14+ or modern Python
Solution: Use Node Version Manager (NVM) to switch to Node 4.x or 6.x:
nvm install 6.17.1
nvm use 6.17.1
npm install
Problem: SBT version conflicts
Solution: Check project/build.properties in each Scala week. Install SBT 0.13.18 for older projects:
# In project/build.properties
sbt.version=0.13.18
Week 28 Ionic Specific Issues
Problem: ionic serve shows white screen
Solution: Check that all Bower dependencies are installed:
cd www/lib
bower install # Run if lib/ folder is empty
Problem: Android build fails with SDK errors Solution:
android update sdk --no-ui --filter build-tools-23.0.1,android-23
# Or use Android Studio to install API 23 (Android 6.0) SDK
Problem: CORS errors when connecting to backend Solution: Enable CORS in backend or use Ionic proxy:
// ionic.config.json
{
"proxies": [
{
"path": "/api",
"proxyUrl": "http://localhost:8080/api"
}
]
}
Google Cloud Vision (Week 09)
Problem: 403 Forbidden errors Solution: Ensure billing is enabled on GCP project and Cloud Vision API is activated in Google Cloud Console.
General
Problem: Tutorial links in README are broken Solution: This series was discontinued at Week 42. Some external dependencies may have changed. Check the specific week's GitHub issues or submit a PR with updates.
Contributing: To fix errors or add guest posts:
git checkout -b fix-week-[number]
# Make changes
git commit -m "Fix: description"
git push origin fix-week-[number]
# Open Pull Request