Consumer Mobile Application
Consumer Mobile Application
Please see attached document for full description
The system will consist of multiple services provided in a single application framework.
The single application will support mobile web, tablet (web), and desktop browsers. We will then wrap these applications in native mobile applications for iOS and Android at a later time.
All server side application logic will be built in the Java Spring Framework (http://www.springsource.org) and deployed on Amazon AWS servers and services. For more information about the infrastructure see Section 4.1 Server Infrastructure.
1.2 Application Structure
It is not yet determined whether a “single page application”
1.3 Application Scaling
The application will be built to support automatic scaling using Amazon AWS Elastic Beanstalk. It will be well architected from the beginning to support 1 million users with minimal code changes. That is, scaling must be a key consideration in the development of the application.
1.4 Data Feed Integration
On the server side the project will require the development of numerous data feeds from various sources and in various formats including:
• Flat Files
• Web Scraping
• REST API’s.
All data feed and interface development will be built in the appropriate Spring modules including Spring Integration, Spring Batch and Spring Web Services which are part of the Java Spring Framework.
1.5 User Interface and Design
The developer should be current with current best practice mobile and web design patterns, specifically responsive design using a single html code base to support multiple devices (mobile, tablet and web).
We will be using the Twitter Boostrap CSS/JS library to provide the base-level look and feel (user experience). We will modify the CSS/JS as necessary to support our designs so the developer will need an in-depth understanding of CSS3 and JS as it’s used in modern day HTML5 applications.
2.1 Server Infrastructure
The Company will deploy the application to Amazon AWS servers and utilize AWS services as is feasible to reduce operating costs and increase scalability without adding significant employee overhead. The following Amazon AWS services will be used in the production system:
1. Amazon AWS EC2 (compute nodes, web and application)
2. Amazon AWS S3 (static storage)
3. Amazon AWS Glacier (Backups)
4. Amazon AWS RDS (MySQL)
5. Amazon AWS DynamoDB (NoSQL)
7. Amazon AWS Elastic Load Balancer (load balancer)
8. Amazon AWS Elastic Bean Stalk (automatic scaling engine)
2.2 Client Frameworks
1. CSS and Responsive Design - Twitter Bootstrap -http://twitter.http://twitter.gith
a. This is a collection of CSS, JS and HTML for doing dynamic responsive web layouts to support multiple devices simultaneously with the same codebase. Basically one set of style sheets for all devices.
2. Application Structure and Best Practices - Boilerplate.JS -http://www.boilerplatejs.org/
3. MVC & User Interface - Angular JS - http://angularjs.org/ -
4. Browser Feature Detection Library - Modernizr - http://modernizr.com
a. Provides a library to detect the HTML5 and CSS3 features of the browser being used.
2.3 Server Frameworks & Software
The Company’s applications will developed and deployed on open source software to minimize server licensing costs and avoid vendor lock in.
1. Application Framework – Spring Source - http://www.springsource.org/
a. SpringSource is a division of VMware that provides a suite of software products for the enterprise Java application life cycle of build, run, and manage. SpringSource works on improving Spring, a programming model for enterprise Java applications. SpringSource also employs multiple members of the Apache Tomcat, Apache HTTP Server, Hyperic, Groovy and Grails open source communities.
2. Application Server – Apache Tomcat - http://tomcat.apache.org - Apache
a. Tomcat (or simply Tomcat, formerly also Jakarta Tomcat) is an open source web server and servlet container developed by the Apache Software Foundation (ASF). Tomcat implements the Java Servlet and the JavaServer Pages (JSP) specifications from Sun Microsystems, and provides a "pure Java" HTTP web server environment for Java code to run.
3. Web Server – Apache 2.n – http://httpd.apache.org -
a. Apache HTTP Web Server.
4. OS – Linux Ubuntu 12.10 – http://www.ubuntu.com
Skills: amazon, apache, linux