Blog Archive

User Case Story from Hope Community Church

Posted By: Tracy Mazelin on October 28, 2013

Today we are featuring a user case story submitted by Todd Darling of Hope Community Church in Raleigh, NC.  Todd has developed a creative solution which utilizes our API to enhance their student check in experience.  Check out the video and post outlining exactly how they are doing this.  Many thanks to Todd and the technology team at Hope Community Church for the work they put into sharing this with our developer community.  Enjoy!

Guest Author: Todd Darling, Web Developer
Hope Community Church in Raleigh, NC



THE SETUP:
For our middle and high school student ministries on the weekend, the students check themselves in, most of the time without a parent. During our midweek middle school service—which often has 300+ middle schoolers—a lot of students bring friends whose families don’t even go to Hope (which is AWESOME!)

How…

Read the whole entry...
Posted In: API, News, Tips,
Comments: 0  Comments

Single Sign On Functionality Exposed

Posted By: Tracy Mazelin on June 25, 2013

We are excited to announce the latest of additions to our API, Single Sign On!  The following video is the first part of a two part series showing how to consume these new API methods.  Part two will demonstrate using the API to create an Infellowship User Account.  We would love to hear your feedback on this.  Please test it out in the staging area and let us know your thoughts!


Documentation: http://developer.fellowshipone.com/docs/v1/Util/SingleSignOn.help
Example Code: https://github.com/tracymazelin/SingleSignOnDemo

Read the whole entry...
Posted In: API, News, Tips,
Comments: 2  Comments

API Communication Value Changes

Posted By: Tracy Mazelin on November 2, 2012

As many of you know, earlier this year we began to streamline the types of communication values available in Fellowship One.  More information about the project can be found on our community blog here, and also on the developer blog here.

As a result of this project, we enhanced functionality around communication values via our API, and last week we pushed the enhancements to production.  You, our developer community, responded very well to the changes.  You rock!

Here is a review of the changes and enhancements:

Reduction in Communication Types.

GET https:// demo.fellowshiponeapi.com/v1/communications/communicationtypes

Response:

 { "communicationTypes":{ "communicationType":[ { "@array":"true", "@id":"1", "@uri":"https://demo.fellowshiponeapi.com/v1/Communications/CommunicationTypes/1", "@generalType":"Telephone", "name":"Home Phone" }, { "@array":"true", "@id":"2", "@uri":"https://demo.fellowshiponeapi.com/v1/Communications/CommunicationTypes/2", "@generalType":"Telephone", "name":"Work Phone" }, { "@array":"true", "@id":"3", "@uri":"https://demo.fellowshiponeapi.com/v1/Communications/CommunicationTypes/3", "@generalType":"Telephone", "name":"Mobile Phone" }, { "@array":"true", "@id":"138", "@uri":"https://demo.fellowshiponeapi.com/v1/Communications/CommunicationTypes/138", "@generalType":"Telephone", "name":"Emergency Phone" }, { "@array":"true", "@id":"5", "@uri":"https://demo.fellowshiponeapi.com/v1/Communications/CommunicationTypes/5", "@generalType":"Email", "name":"Home Email" }, { "@array":"true", "@id":"4", "@uri":"https://demo.fellowshiponeapi.com/v1/Communications/CommunicationTypes/4", "@generalType":"Email", "name":"Email"…
				

Read the whole entry...
Posted In: API, News, Tips,
Comments: 0  Comments

Webhooks

Posted By: Tracy Mazelin on May 23, 2012

 

The video above is a tutorial to show how it is possible to use a web service such as Formstack to collect data on your church website and have the data go directly into Fellowship One via a webhook.  The concepts carry true for other web services that feature webhooks, such as Wufoo - another online form builder solution - or Mail Chimp, which offers email marketing and email list management.

Utilizing webhooks along with the Fellowship One API allows you to keep Fellowship One as the authoritative database of record by intelligently pushing in data - in real time - from other web services.

Watch the video and let us know in the comments section if this is something your church could use!

If you don’t have an API key yet, sign up…

Read the whole entry...
Posted In: API, Tips,
Comments: 9  Comments

Enter Visitor Data via Your Church Website

Posted By: Tracy Mazelin on March 16, 2012

Possibilities For Ministry Use

  • Capture contact information dynamically during a worship service instead of using visitor cards
  • Allow volunteers to enter simple data into Fellowship One through your church website
  • Setup a kiosk where visitors can enter their own contact information

The Code
The following is the PHP code used to process the form entries and write the data into Fellowship One through the API.  This example uses the PHP Helper Class, ‘FellowshipOne.php’ contributed by a member of our developer community, Daniel Boorn.  A few methods were added to the helper class and you will find a link to all the source code below this code example.  Please feel free to use and adapt this as necessary.  If you don’t already have an API key, you can apply for one here: https://developer.fellowshipone.com/index.php/key

 <?php require('FellowshipOne.php'); $settings = array(…
				

Read the whole entry...
Posted In: API, Tips,
Comments:  Comments

Building a custom login for your church website using the API

Posted By: Tracy Mazelin on November 29, 2011

Background

The Application Programming Interface (API) of Fellowship One provides a way for churches to leverage their own church data within custom built applications. This tutorial is going to outline how you can use our API to build a custom login to your church website by authorizing the user based on their WebLink or InFellowship login credentials. This is a 2nd party application and this post builds upon the foundation laid by Jas Singh here. You will find links to the PHP oAuth library and more detail about 2nd party authorization in his post.

Step 1: Build a login form

image

First, you will need to build a login form requesting a username and password. If the majority of your church has already converted their WebLink login to an InFellowship login, then you will want to ask for their email address…

Read the whole entry...
Posted In: API, Tips,
Comments:  Comments

The Agile Triangle

Posted By: Lance Dacy on July 27, 2011



Jim Highsmith presented to DFW Scrum on July 26, 2011. We are grateful for his time and energy to come by and educate us on the true Agile Triangle and how to balance cost, scope, and schedule (which he ascertains are actually constraints, not foundational pieces of the Iron Triangle).

Fellowship Technologies is a proud sponsor of DFW Scrum as they strive to concentrate on various "bands" in Scrum. The process is small and simple, and relatively easy to understand. Doing it... well that is another story altogether. Scrum says "start with a backlog, prioritize it, estimate it, commit to a piece of it in a sprint, deliver potentially shippable product in the end, look back on ways to improve, rinse and repeat". I also add that our job…

Read the whole entry...
Posted In: Tips,
Comments: 0  Comments

Conversation Paralysis

Posted By: Lance Dacy on July 7, 2011

Scrum teaches us that feature requests (user stories) are to be written in the language of the customer (As <some role> I need <some feature> so that I can <get some value>.) These small sentences actually pack a load of information for the technical team reading them and it forces the user to really think about their feature and what they are trying to accomplish. All too often, even the customer doesn't know exactly what they want, so this format helps them to succinctly describe their problem.

The beauty of the user story however is not necessarily the language or format. The user story is actually the place holder for the conversation that needs to take place. The team can then solve the user's problem by talking through the solution with the entire team's knowledge and wisdom at work (all the while conversing with the…

Read the whole entry...
Posted In: Tips,
Comments:  Comments

Building a Deployment Pipeline

Posted By: Nick Floyd on October 5, 2010

In Development at Fellowship Tech, one thing we’ve been working on is an automated build pipeline.  This allows us to build our software and deploy it to our environments with no human intervention.  The complete automation of our builds and deployments is called a deployment pipeline or build pipeline.  It’s called a pipeline because once the build is inserted into the pipeline, a set of mostly automated process act upon it and pending the passing/approval of the results of that process it moves on to the next stage.  Let’s examine the stages of the build process.

Read the whole entry...
Posted In: Tips,
Comments:  Comments

The World of Dev Craft

Posted By: Lance Dacy on September 28, 2010

I joined Fellowship Technologies in 2004, so feel I have been exposed to the Software Development Craft for quite a while now. While my degree was in Computer Science, my past physical work experience did not involve Software Development until I joined FT. So, I may be completely off-base with my observation, but I woke up this morning with the need to blog on this topic to help with my research / hypothesis.

The Software Development craft is amazing in that most people seem to incorporate community in their day-to-day work. I don’t mean they use Facebook or Twitter (although most of them do). I mean that these groups of people are always willing to put an idea in the public space, critique ideas so that people can improve themselves, and organize a broad self-help support community for just about any issue that you face while developing software.

Looking back…

Read the whole entry...
Posted In: Tips,
Comments:  Comments

Running Tests in Parallel with Selenium

Posted By: Matthew Sneeden on September 22, 2010

The ability to run multiple tests in parallel is key when creating large, scalable, automated test suites.  It is even more important when we begin to enter the world of continuous integration and deployment.

Luckily, users of Selenium are able to a accomplish this, with a few modifications and potential restructuring of existing tests.  “Out of the box” Selenium is coupled with the NUnit framework.  For this example, we will be using the MbUnit framework which is included with the Gallio automation platform http://www.gallio.org/  for .a C# implementation of Selenium.

After installing Gallio, any references to NUnit in existing and/or new test projects must be replaced with MbUnit.  MbUnit includes an attribute known as the ‘Parallelizable’ attribute that can be applied at either the test or test fixture level.  As you may have guessed from the name, this is the attribute which designates a test, or test fixture as…

Read the whole entry...
Posted In: Tips,
Comments:  Comments

Abstracting Your Code to Remove Duplication

Posted By: Jingyi on September 14, 2010

Every developer knows duplicated code is bad. We should avoid duplicating code. The following code snippets are from my own work.


public SomeMethod() {
string hiddenFunds = ".....";
string hiddenSubFunds = ".....";
string hiddenPledgeDrives = ".....";

proxy.Funds = ToFunds(hiddenFunds);
proxy.SubFunds = ToSubFunds(hiddenSubFunds);
proxy.PledgeDrives = ToPledgeDrives(hiddenPledgeDrives);

}

private FundCollection ToFund(string hidden) {
var ret = new FundCollection();

if(!hidden.IsEmpty()) {
String[] pairs = hidden.Split(';');
foreach (var pair in pairs) {
string[] arr = pair.Split(',');
collection.Add(new Fund {ID = int.Parse(arr[0]), Name = arr[1] });
        }
  }
  return ret;
}

private SubFundCollection ToSubFunds(string hidden) {
var ret = new SubFundCollection();

if(!hidden.IsEmpty()) {
String[] pairs = hidden.Split(';');
foreach (var pair in pairs) {
string[] arr = pair.Split(',');
collection.Add(new SubFund {ID = int.Parse(arr[0]), Name = arr[1] }); Read the whole entry...
Posted In: Tips,
Comments:  Comments

Documentation in an Agile Environment

Posted By: Tara Coulson on September 8, 2010

Fellowship Technologies’ Product Development group has been developing features and functionality for Fellowship One using Agile Software Development for two years. The methodologies involved with Agile:

  • encourage frequent review and adaptation
  • promote teamwork, self-organization and accountability
  • promote rapid delivery of quality software
  • focuses efforts on customer needs and company goals

Scrum teams form to work on particular user stories requested by a product owner during a two or three week sprint. Each scrum team is typically made up of developers, quality assurance and documentation specialists. The goal for the end of each sprint is to, as a team, work to produce working software.

How Does Documentation Fit? Lessons Learned

The very first lesson I had in this subject is that there are two types of documentation and they are completely different things! The first type of documentation is project related or, in other words, what must go into the…

Read the whole entry...
Posted In: Tips,
Comments:  Comments

Drowning in Debt

Posted By: Michael Eisworth on August 31, 2010

In Software Development, much like in Finance, having too much debt can be a real burden.  In developing software there are trade-offs and reprioritization so that you can deliver the most business value in the shortest amount of time. When a feature, fix, or enhancement is deemed necessary but not urgent, and is thus delayed, there is a future liability created. Likewise when functionality is implemented in a way that will have to be refactored in the future an expense is incurred. This expense is called technical debt and refers to the eventual, additional development that has to be done at some point in the future to finish a particular piece of software.

It is easy to draw parallels between technical debt and financial debt. Most people understand the concept once explained even though the actual technical debt can be difficult to identify since shareholders may have different opinions as…

Read the whole entry...
Posted In: Tips,
Comments:  Comments

Intro to Ruby on Rails

Posted By: Jas Singh on August 24, 2010

Ruby on Rails, often shortened to Rails or RoR, is an open source web application framework for the Ruby programming language that makes it easier to develop, deploy and maintain web apps. Rails uses the Model-View-Controller (MVC) architecture pattern to organize application programming.
It includes tools that make common development tasks easier “out of the box”, such as scaffolding that can automatically construct some of the models and views needed for a basic website. Also included are WEBrick, a simple ruby web server, and Rake, which is a build system.

Together with Rails these tools provide a basic development environment. One of Rails’ biggest strengths is metaprogramming, Rails introduces the Active Record framework, a design pattern by Martin Fowler. The rails version of Active Record discovers the columns in a database schema and automatically attaches them to your domain objects using metaprogramming. Rails also relies on convention over…

Read the whole entry...
Posted In: News, Tips,
Comments:  Comments

Android & OAuth

Posted By: Kelly Klein on August 10, 2010

If your Android application needs to implement OAuth there are many options available. The one that I’ve used that I like the best is signpost. It’s simplicity allows it to stay out of your way while you focus on implementing your applications functionality instead of worrying about how OAuth works.

Getting Started

The first thing you’ll have to do is download the signpost library. You’ll need both signpost-commonshttp4 as well as signpost-core. Save these to your hard drive in the lib folder of your project. Now add both libraries to the build path of your project and your ready to go.

Here We Go

We need a class that will implement the signpost library to make calls to the API to retrieve our data. The way this is implemented in Fellowship One…

Read the whole entry...
Posted In: Tips,
Comments:  Comments

F1 API Static Library with Objective-c

Posted By: Chad Meyer on August 3, 2010

At Dynamic Church 10 Conference I had the opportunity to collaborate with some awesome developers / peeps from around the globe in the church market. Our conversations focused on using objective-c to communicate with the FellowshipOne API in order to build native iPhone applications.

Building an OAuth wrapper no matter what language is not trivial. Remembering all the business rules and connecting all parts together to make properly signed requests can take some time to perfect. Other avenues would be integrating with other third party libraries in hopes that everything their code does works for all scenarios and that it will pass Apples submission tests. Not to mention the fact that iPhone does not take advantage of memory management so the developer is responsible for properly allocating and releasing objects.

After some thought and research, we at Fellowship Technologies decided it would be slick to…

Read the whole entry...
Posted In: Tips,
Comments:  Comments

SaaS & BI - The History & Future

Posted By: cutter on June 29, 2010

The concept of Software as a Service, or SaaS was first introduced in 2001 to describe the delivery method of a then-emerging concept, the Application Service Provider, or ASP. An ASP is a company who provides on-demand licensing and access for an application, usually using the internet as a delivery mechanism. As web browsers continue to evolve and become more ubiquitous in the workplace, SaaS solutions are on the rise. Since 2001 the Software as a Service (SaaS) model has matured into a reliable, cost-effective method of delivering software. Once limited to small and medium size businesses, SaaS solutions are increasingly used by large enterprise organizations. SaaS solutions are being offered by an expanding range of software development companies. Even large development organizations who have traditionally used an installed license model are embracing the SaaS model as either a primary or alternative delivery model.

The SaaS model offers ease of…

Read the whole entry...
Posted In: Tips,
Comments:  Comments

Getting Started with Android

Posted By: Kelly Klein on June 22, 2010

Do you have an idea for the next revolutionary or “magical” mobile application that will change the world? Do you want this application to run on the premier open mobile operating system, Google® Android™? Are you not sure where to start or what tools you need? Do you want your application compatible with all the various Android handsets on the market?

If you answered yes to those questions, you are in the right place! This blog post will give you some basic information and point you towards sources to help you in designing your application.

Tools

Android is all about openness. So it should be no surprise that the tools needed to create Android applications are open source and available for the 3 main desktop operating systems, allowing you the freedom to develop your application in the environment that works best for you. Google has come up with a Read the whole entry...
Posted In: Tips,
Comments:  Comments

Variables in PHP

Posted By: Jas Singh on June 1, 2010

This is the second post of a series of PHP Introduction posts. Be sure to check out the first post, An Introduction to PHP and check back for additional posts in the future to learn all about PHP!

Variable Declaration

A variable always begins with a dollar sign, $, which is then followed by the variable name. eg: $color Variables do not have to be explicitly declared in PHP. Rather, variables can be declared and assigned values simultaneously.

Value Assignment

Assignment by value simply involves copying the value of the assigned expression to the variable assignee. This is the most common type of assignment. A few examples follow:

$color = "red"; $number = 12; 

Reference Assignment

Reference Assignment means that you can create a variable that refers to the same content as another variable does. Therefore, a change to any variable…

Read the whole entry...
Posted In: API, Tips,
Comments:  Comments