Blog Archive

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

Roll Foward!

Posted By: Lance Dacy on August 9, 2011

If you are in software development or technical operations of any kind, you are probably familiar with the term “Roll Back”. For those of you who are not in either camp mentioned above, allow me to provide a brief definition:

Rollback: To return the system, software, or database to some previous state (hopefully the state prior to your deployment).

Back in August of 2010, our teams at Fellowship Technologies started on the long road to continuous delivery. Continuous delivery is the notion that you engineer your software to allow for a continuous deployment through all environments, up to and including Production (with little to no manual intervention). It is also the notion that your engineering practices are so solid that each change you make to the system is backed by a series of automated tests written by the development team. This of course provides confidence and…

Read the whole entry...
Posted In: News
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

Picture this, image updates & creates through the REST API

Posted By: Nick Floyd on May 10, 2011

We just released another API update.  You can now create and update images from the People realm:

Any cool ideas on what you can do with this? Let us know what you’re doing with the API realms via twitter or forum.

Nick Floyd is an Architect for Fellowship Technologies (part of Active Network).  Currently he is focused on improving, designing, and building the architecture around the Fellowship One platform.  He likes learning about new technologies and languages (the obscure and the vanilla) as well as learning about new trends and practices around getting really good software from development to the users, fast.  He is passionate about software development and helping other developers.

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

A REST API double shot : Groups and Events realms

Posted By: Nick Floyd on May 9, 2011

We’re back again to bring you two new realms for accessing your data via FellowshipOne.  The Groups Realm and the Events Realm are the two newest members of our API family!  The Groups Realm opens up access to Fellowship One’s Groups 2.0 features and allows churches and vendors to create new Groups 2.0 capabilities or integrate with other solutions.  The Events Realm provides access to a primary event that can be associated with a Group within the Groups Realm.

Note:  The Events Realm does not at this time provide access to Fellowship One Activities, Check-in, or Event Registration.

Groups resources

Groups

Members

  • Members: Search (3rd) | List (3rd) |…

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

    Increasing Software Delivery by 500%

    Posted By: Nick Floyd on May 3, 2011

    TL;DR (Too long; didn’t read)

    We are deploying software faster with a simple push of a button. This year alone we have deployed code to production 10 times versus 2 last year which is 500% more deployments this year.

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

    Quick people API realm update

    Posted By: Nick Floyd on March 16, 2011

    One of our consumers was nice enough to let us know about an “undocumented feature.”  Normally with bug fixes and small enhancements we’d just deliver the changes and let the docs tell the story, however, this change is around a more sensitive area and wanted to make sure that everyone knew about it.

    The change is to Creates and Updates of the people resource on status/comment.

    Prior to the change if you either

    [POST] https://churchcode.fellowshiponeapi.com/v1/people + a payload with a value for status/comment

    or

    [PUT] https://churchcode.fellowshiponeapi.com/v1/people/[id] + a payload with a value for status/comment

    The value for the “comment” node would not “create” or “update.”

    This has been fixed to now do what you might expect it to do in your sand box environment and we are planning on pushing the change to production tomorrow. If you have a chance please go check it out and let…

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

    Introducing the new REST API giving realm

    Posted By: Nick Floyd on March 8, 2011

    The dev team has been working hard to bring you the next step in the Fellowship One REST API stack - the Giving Realm! We’ve opened up all sorts of resources to help you bring giving into your church.  From accounts to sub funds - all the resources you’ve been asking for served up on a RESTful plate.

    Realms

    You might also notice that we are using a new term to classify our API resource sets: REALMS. Realms are how we will be classifying groups of functionality exposed through the APIs and will help you manage your consumption through segmentation.  The realms will provide churches with the ability to allow or restrict what data consumer applications use and they will enable developers of consumer applications a platform to request specific application keys for specific functions a al carte or application keys that cover the entire stack. For instance, when…

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

    Raising the bar…

    Posted By: Nick Floyd on February 8, 2011

    Raising The Bar Announcement from Fellowship Technologies on Vimeo.

    Fellowship Technologies started in 2004 and finished that year with 60 churches; this past year we added 465 churches and are now serving over 1,700 ministries worldwide. When we came to market, Software as a Service was a relatively new concept and we were able to offer our church partners capabilities that were not available in other solutions. And now it’s time to raise the bar again.

    Today we’re announcing that Fellowship Technologies is joining Active Network, a fast-growing Software as a Service company that wants to foster the growth of communities and businesses and help people participate in the activities they love.

    Check out this post for more information.

    Read the whole entry...
    Posted In: News
    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 being…

    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

    API Strategy & Roadmap

    Posted By: Scott Lowrie on August 17, 2010

    Looking back, only for moment…

    Almost a year ago to the day, Fellowship Technologies deployed the Fellowship One REST API into production. We were excited to achieve this milestone since it represented months of dedicated work by our development team. Since then committed developers, vendors, and our own staff have come together to form a Community dedicated to bring solutions to the church world. I am encouraged and edified by the fantastic work that has been accomplished. Good work!

    If you cook it, then you better be prepared to eat it…

    We believe that the best way to prove our API can accomplish what others need it to accomplish is to use it ourselves. No… I am not talking about for just some things like a mobile app that does this, or a CMS shared login, or vendor solution integration. I am talking about using our own API for the…

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

    Staging/Sandbox Environment is Back up!

    Posted By: Nick Floyd on August 11, 2010

    Sorry for that downtime, but good news…it is back up! Go have fun creating with the API! And we want to make sure we give credit to our awesome TechOps team here at FT for getting the environment back on it’s feet. That’s a group of people that do a ton of awesome work and you rarely hear about!

    **Also, since this is now taking the spot on our home page, be sure to check out our newest blog post “Android & OAuth” by our developer, Kelly!

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

    Downtime in Sandbox/Staging Environment

    Posted By: Nick Floyd on August 11, 2010

    Just a quick note to let you know that we are currently experiencing some unexpected downtime in our Sandbox/Staging environment. Sorry for any issues that may cause you, we’re working to get it back up as soon as possible. For the quickest notification when it is back up (and a lot of other great stuff), please follow us on Twitter @F1Dev!

    Thank you for your patience!

    **Also, since this is now taking the spot on our home page, be sure to check out our newest blog post “Android & OAuth” by our developer, Kelly!

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