Developer Challenge Guide
Force.com Cloud Developer Challenge Guide
Force.com Sites is a brand new capability of the Force.com platform that can be used to create public websites and web applications. The Force.com Cloud Developer Challenge is your chance to lead the pack and be among the first to use and explore this new technology. You not only get an opportunity to play with this cool new addition to the Force.com platform, you get the chance to impress us with what can be built with Apex, Visualforce and Sites on the Force.com Platform - and be among those to receive a special Cloud Developer Challenge t-shirt, a MacBook Pro, an iPod Nano or an iPod Touch!
Go solo or team up with others. You can participate at any level you choose - just make sure to play.
How to participate
You can take part in the Force.com Cloud Developer Challenge in three simple steps -
- First, register to take part in this online event.
- Second, create an application built with Force.com Sites. You can either create one of the three sample applications described below, or create your own powerful application.
- Finally, submit the application.
That's it. We may ask you to walk us through your code so we can fully appreciate the effort and ingenuity you have applied to this Challenge, but whatever you create is yours. If it's good enough, perhaps you'll even consider putting it up on Force.com AppExchange!
Rules
There aren't many rules. This challenge is about building on Force.com - so obviously we require that your application be built on Force.com! Besides that, we also require that you use a particular part of the platform—Force.com sites. This lets you build public websites and web applications. When you submit an application, you must submit the URL of your (public) Force.com Sites-based application so that we can see it in action.
Check out a winner from a previous developer challenge - Game Craze. As you'll see it's a smart looking e-commerce type application. It's also built with Force.com Sites, as you can see from the public URL.
Who can Participate
This challenge is open to anyone wanting to learn more about cloud computing! If you're a developer, dig in!
Working together
The Force.com user community is a valuable resource for sharing information and learning from others. To help Challenge participants share details and help, we have created the Force.com Cloud Developer Challenge discussion board.
Stop by often to read, share and learn.
Getting Started
You will need a free Developer Edition (DE) environment to participate in the Cloud Developer Challenge. When you register for the Challenge, we'll give you one if you don't already have one.
You can quickly get up to speed on the basics of Force.com Sites by following step-by-step instructions to create a simple Site with a single page. Go the the Force.com Workbook and skip to Tutorial #8: Create a Public Web Page Using Force.com Site. Follow the instructions in the tutorial to create your first Force.com Site.
You can go even further by exploring some recipes for expanding the reach of your first Site. The Sites Technical Library page has a number of recipes at the bottom of the page which will allow you to learn about using Force.com merge fields in your Sites pages, as well as customizing the look and feel of your Sites pages.
Once you have mastered the basics of Force.com Sites, take on one of the challenges. Create one of the suggested sample applications, or take flight with your own unique application.
The Challenge: Build Your Own Killer Sites application
This highest level of the Force.com Cloud Developer Challenge is the free-for-all challenge. You build something new and amazing with Force.com Sites - something that goes above and beyond the applications set out in the previous challenges. You can use any Force.com functionality - from Visualforce pages and custom controllers to workflow, formulas and even mobile application support. Building your own cool Sites application not only certifies you as a true Sites Star, but provides the best route to win some great prizes.
Hints
- Think about an application that solves a use-case commonly required by public users, such as a store locator or partner finder.
- Check out IdeaExchange and AppExchange for some ideas of applications, and think about extending these with Sites to create a useful public front end.
Alternative I: Build a Product Catalog
To complete this level of the Developer Challenge, you will create a product catalog that will be available through Force.com Sites. You will be supplied with a custom object that represents widgets in the product catalog, as well as some styles included in a Cascading Style Sheet (CSS). You have to build out the Visualforce page that displays the product catalog, and make the page available to the public via Sites.
Instructions
- Navigate to http://developer.force.com/hackathon/productCatalog to see the application in action!
- Install the skeleton package by navigating to http://developer.force.com/hackathon/productCatalogpackage. After entering your DE credentials, hit Continue, then Next. Choose "Grant access to all users" when you choose a security level and then "Install". Be sure to "Deploy Now". These actions will install a custom object (Widget), a Visualforce controller class (catalogController), a skeleton Visualforce page (productCatalog), an application (Product Catalog) and a static resource CSS file (productcatalogstyle).
- Select the Product Catalog application and navigate to the Widgets tab. Insert a number of widgets into the catalog.
- Modify the supplied Visualforce page (productCatalog) to display the catalog, and style the page using styles listed in the CSS file.
Hints
- Don't forget to activate your site.
- Ensure that your Sites page has the appropriate field level security settings to access the field data.
- To use the interactive Visualforce page editor, you will have to enable Developer Mode for your user, accessible through the Manage User choice in Administrative Setup in the Setup menu.
Bonus Options
- Add support for the "Photo URL" field to have this point to an image.
- Let the user click on a widget in the product catalog, and make that action display the image in an AJAX update of the page.
- Use the "Quantity on Hand" field, together with the "Price" field, to extend the catalog to show the total value of all stock in hand.
- Include the new Visualforce pagination support to allow users to page through large sets of widgets.
Alternative II: Build a Blog Engine
To complete this level of the Developer Challenge, you will have to create a simple blogging application. You will start with the custom objects and CSS. You will build a set of Visualforce pages that make up a blog engine, and make that Engine publicly available via Sites. The blog engine will allow visitors to leave comments on blog posts.
Instructions
- Navigate to http://developer.force.com/hackathon/blog to see the application in action!
- Install the skeleton package by navigating to http://developer.force.com/hackathon/blogpackage. After entering your DE credentials, hit Continue, then Next. Choose "Grant access to all users" when you choose a security level and then "Install". Be sure to "Deploy Now". These actions will create the entities you will need to begin your work.
- Select the Blog App, and insert blog posts using the blog posts tab.
- Fill in the missing code in the blog and blogDetail Visualforce pages. Clicking on a blog post displayed on the blog page should show the blogDetail page, which should also allow users to leave comments.
- Make the final application available to the world via Sites.
Hints
- Search http://developer.force.com for a previous blog application article for additional coding tips.
- Use the built-in Visualforce component library to access help for standard Visualforce components and their attributes.
Bonus Options
- Change the look and feel of the application by moving the CSS into a static resource and modify the application to reference it.
- Use the Force.com Sites feed functionality to enable a live feed of the blog posts, and subscribe to the blog with your favorite blog reader.
Alternative III: Build a Survey Application
To complete this level of the Developer Challenge, you have to build a survey application. The application must allow you to create a survey, stringing together a number of questions. The application must allow users to run the survey on a public website, and ideally also provide access to metrics for each survey. We provide a look at a running Survey WebApp written in Visualforce, Apex Code, and Sites but do not provide the code. You can use this application as an illustration for the functionality you will need to build, and then build it yourself!
Instructions
- Browse to http://developer.force.com/hackathon/survey to see the application in action!
- Write the application!
Hints
- Consider having objects for Participants, Surveys, Questions and SurveyAnswers (to hold the answers provided by a participant for a survey question).
- Think about having a lookup relationship to the Survey object, in the Participant object.
- You probably want your SurveyAnswer to have two fields representing master-detail relationships. One to a Participant, and another to Question.
Bonus Options
- Consider handling different types of questions in a single survey
- Provide an option to mail out invites to participate in a survey
Show us your work!
Once you have completed your Force.com Sites application, you can submit the results of your work. We may ask you to walk us through your code, so we can evaluate the results of your effort for the judging.
Good luck and good developing!