Project Ideas

We’ve worked with TechSoup Canada to help identify projects for non-profits. Here is a sample project.

For a full list of nonprofit project ideas, see the TechSoup Canada Project List

Project Description:

Frontline Partners with Youth Network (FPYN), project of Tides Canada Initiatives, like many busy nonprofits, is trying to answer the question: are we using our time effectively? Forget what you know about traditional time-tracking systems and think flexible, shared, user-friendly and collaborative. At the core, a solution should let staff or volunteers to easily tag blocks of time against multiple categories and allow for flexible analysis of individual or group time by category. Wherever possible, the solution should make things easier by syncing with calendars and other tools. A good solution will not only help FPYN to become more efficient in their work, it will also provide critical information needed for reporting to funders – ensuring that they have the time and resources to provide much-needed support, education and healing for frontline youth workers. For this project, a technology combination could be Azure, PHP, AJAX, MS SQL, and Google Calendar.

Another place to brainstorm ideas is this site http://theinternetwishlist.com/. It’s a collection of ideas for websites and apps that people wish for.

Below is the winning application submission from the Imagine Cup 2010 Interoperability competition.

Abstract of your Problem Space and High Level Solution Scope

Xormis is a match maker; it couples significant and pervasive problems with the right solution providers. This concept can not only be used to fix one UNMDG but all. Xormis is extremely flexible and can be used to assist in major events such as natural disasters (Earthquakes, Hurricanes, etc.), by providing charities and emergency management agencies with critical logistics based information. It can also be used to aid in solving community issues, or for entrepreneurs with starting new business. Xormis redefines the way problems are solved by utilizing cutting edge web technologies, advanced mapping and web based geographic information systems, as well as an efficient inference algorithm to connect known issues, problems or resource requirements to solutions and relevant resource providers.

List of Microsoft and Other Technologies and explain the purpose/role of the technology used

All 3rd party technologies data type transfer not mentioned is of type JSON.

Microsoft Technologies
.NET 3.5 SP1 Prior knowledge of .NET so we used it for the central framework.
Entity Framework 4 Used EF for automatic serialization of the data for use in WCF OData.
Windows Mobile 6 A Bridge between the Web and Cell phone SMS interaction.
ASP.NET MVC 2 For easy unit testing and n-tier approach to the service oriented architecture.
Silverlight For impressive UI and offline data storage.
Photosynth API For uploading media and viewing in 3D.
Other Technologies
Neo4j Graph Database 1.0 Java network graph database.
SiaqoDB Local database storage for Silverlight.
MySQL Cluster 7.1 Free database.
jQuery For impressive UI.
Facebook API View posts and interactions and interests of your friends.
Google Calendar API For setting up meetings between people and logging the event.

Describe the Interoperability that your project will show

Some capabilities and features that demonstrate Interoperability:
Users can create open office excel files from Silverlight client running offline. Then read or edit them in their own software, then send it back to the client. The Silverlight library then converts it to SOAP and sends it to the server.

  • Our logic with .NET communicated with Neo4J, a java network graph database library that is self-hosted on the Windows server, through a RESTful approach.
  • Created a bridge between SMS and Web server without using a gateway by using a Windows obile 5.0 application as the middle man to intercept messages.
  • Created library that takes segmented data from OData and converts it to CXML format along with linked images converted to deep zoom images, to expose it to Pivot

Interoperability made our project easy and successful in the following ways:

  • Communicating with neo4 reduced the need for graph algorithms completely. This reduces stress on the both web and database servers.
  • OData exposed our data in multiple formats to the public, in which even some of our own client application make requests to. This reduced development time of creating web service endpoints for every combination of queries and increases security instead of opening up the database publicly.
  • By using DotNetOpenAuth which supports OpenID, OAuth and iCards made our development swift and more secure. We do not keep any account information for users. OAuth supported perfect Web service authentication so OpenID users can authenticate with non-web applications.
  • Entity Framework made it easy for us to change database engines without any changes to the code.
  • These web services allow us to create clients on multiple mobile platforms in the future if they do not upgrade to HTML 5 for advanced features.
  • Our website is social thanks to Facebook API allowing us to utilize friend data.

Which of these technologies are used for Interoperability in your project? (You must use at least 2). Describe the Microsoft and Non-Microsoft Products and Technologies used

Microsoft Technologies
WCF Web Service (OData, REST, SOAP)
  • OData Service for public access to the data which are exposed as JSON, REST, Atom.
  • REST and SOAP are exposed from the WCF endpoint for use by Windows Mobile and Silverlight-based clients.
CXML File format used by data visualization software, Pivot by Live Labs. Created using custom built library to convert data provided by OData to CXML and images to DeepZoom images.
Office Open XML (XLSX, DOCX) Silverlight library that reads and write data to Excel and writes files in Word and PDF.
Other Technologies
OpenID, OAuth, iCards
  • OpenID and iCards for authentication on our website.
  • OAuth for API authentication of Silverlight and Windows mobile clients.
  • Provided by DotNetOpenAuth.
Atom Used for Post Feeds because it is more widely adopted and more clearly specified than RSS.

Technical Architecture