Gliding Gaelyk


Vladimír Oraný

https://slid.es/musketyr/gliding-gaelyk
https://github.com/musketyr/hand-of-friends

http://vladimir.orany.cz
@musketyr

Vladimír Oraný

Gaelyk Project Lead
Independent Software Engineer

Gaelyk
Metadata Repository
Pixoto

Installing Glide

http://glide-gae.appspot.com/docs/installing


*nix Systems

curl -s get.gvmtool.net | bash
gvm flush candidatessource ~/.gvm/bin/gvm-init.shgvm install glide

Windows
Download package from 
http://dl.bintray.com/kdabir/apps/glide/glide-0.3.2.zip
Extract Glide archive to e.g. C:/
Add Glide bin folder to the PATH (you can try RapidEE to do so)


Setup the Glide Website

mkdir my-glide-appcd my-glide-appglide createglide

Signup for App Engine

https://console.developers.google.com/start/appengine

Google App Engine

Platform as a Service
(= you code, they do the rest)
For creating large scalable Google-like websites...
... but you can run your small website as well
Provides set of API to simplification

Multiple programming language support
Python, Java, Go, PHP

Example: Search API


Gaelyk


by Guillaume Laforge
and other contributors
Groovy enhancements for Google App Engine
Flexible routing system

Example: Search DSL

Glide


by Kunal Dabir
Tool to simplify creating Gaelyk websites
Removes all the Gradle clutter
Merges your project with Gradle template

Example: Glide Blog Demo

Sample Application

The Hand of Friends

antisocial network
only allows up to 5 friends
comments on posts
no public posts

You can add your use cases 
We can try to implement them at the end


Resources

Google App Engine Java
https://developers.google.com/appengine/docs/java/

Gaelyk Tutorial
http://gaelyk.appspot.com/tutorial

Glide Website
http://glide-gae.appspot.com/

Glide Examples
https://github.com/kdabir/glide/tree/master/samples

Task 1: Create Home Page

Create home page for the website


Use Gaelyk routing
http://gaelyk.appspot.com/tutorial/url-routing

See how view and controllers works in Gaelyk

To make the site looking more professional you can use Bootstrap framework
http://getbootstrap.com/

Task 2: The Feed Page

Create demo page where the feed will be show
Only logged in users can access the page
If the logged in user accesses the homepage 
redirect him to feed


See which predefined variables are available in the scripts
See how to configure security in glide.groovy
See how to configure security in Google App Engine

Task 3: Keep it DRY

Extract repetitive code from home and feed page
Add login and log out links


See how the layouts are configured in Glide
See how does sample layout page looks like
See how UserService works
See how to create Groovy Templates

Task 4: Post to the Feed

Crate new post
Show posts crated by logged in user
Add comments to the posts


You can use @Entity annotated classes to represent
stored data
User Query DSL to show related posts

Task 5: Manage Friends

Send email invitation
Add and remove friends


See Gaelyk's email support
See Gaelyk's queues support

Task 6: Search in Posts

Add ability to search through the posts
Be careful about the privacy


See the search support in Gaelyk

Task 7: User admin

Ability to upload user's avatar
Ability to change the display name
Show avatars and display name at the posts


See how to upload files in Gaelyk
See how to work with images in Gaelyk

Task 8: Last Mile

Improve the performance using cache

See how memcache works in Gaelyk



Task 9: Deploy to the Cloud

Deploy the application to the Google App Engine
Made with Slides.com