Web app presenting statistics of your activity on flickr.
This is my playground for learning Scala, Play Framework, Akka & Cassandra or whatever else I will decide to include in this project in future. You can find more information about the project on my blog.
- You will need to have preinstalled Java, Scala, SBT, nodejs, npm and docker.
- You need to have an active Flickr account.
- You will have to create a flickr app and obtain app key & secret.
- You will have to generate Play Framework secret.
Start from building the UI:
sudo npm install -g npx npm install npx grunt
The second step is to setup the DB.
Start from building the image and running the container:
sudo mkdir /var/data sudo chmod 700 /var/data sudo docker build -t="michajls/fa-cassandra" ops/cassandra/ sudo docker run -d -v /var/data/fa-cassandra/:/var/lib/cassandra --name fa-cassandra michajls/fa-cassandra
Check the IP of
sudo docker network inspect bridge
Now you will start another Cassandra container, but instead of starting the server, you run cqlsh and connect to the
fa-cassandra container as user
The default password is
cassandra. Put in place of $IP the IP you acquired by inspecting the network.
sudo docker run -it --link fa-cassandra:cassandra --rm michajls/fa-cassandra cqlsh $IP -u cassandra
Once you are logged in, change the password for
ALTER USER cassandra WITH PASSWORD 'password';
and manually create DB schema from db/structure.cql (auto migrations not yet implemented).
Prepare the environment.
export FA_APP_KEY=? export FA_APP_SECRET=? export FA_DB_HOST=? export FA_DB_USER=cassandra export FA_DB_PASSWORD=? export FA_CRYPTO_SECRET=?
FA_APP_SECRET- flickr app key, to be obtained by creating a new flickr app.
FA_DB_HOST- IP of
fa-cassandracontainer obtained earlier with
sudo docker network inspect bridge.
FA_DB_USER- db user name,
cassandraunless you created a new user.
FA_DB_PASSWORD- db user password, set while setting up db.
FA_CRYPTO_SECRET- encryption secret needed by Play Framework.
And finally, let the
sbt do the rest of job for you:
sbt compile sbt run
You can reach the app under
http://localhost:9000/. You will not see any data yet, but if the app dicoveres that you don't have a dashboard,
it will start slowly fetching data from fa and building a new dashboard, so refresh the page after few minutes.
- Flickr API Docs: https://www.flickr.com/services/api/