Skip to content

jamesmontemagno/MeetupManager

Repository files navigation

Meetup Manager for Organizers

A Cross-Platform app for Meetup.com organizers to help track attendees at events.

Written in C# with (Xamarin)

Open Source Project by (@JamesMontemagno)

Copyright 2015 (Refractored LLC)

Available for free on:

Built with C# 6 features, you must be running VS 2015 or Xamarin Studio to compile.

Why did I create this?

As a user group organizer of (Seattle Mobile .NET Developers Group) I found out right away that there was an issue with finding out not only how many people attended the event but also who was there. I thought that there had to be a better way of checking people in at the door and using this data to do giveaways as well. After realizing that Meetup.com had a great restful API that I could tap into. I spent my holiday break between Dec 24th and Dec 30th 2013 to create Meetup Manager v1 using MVVMCross.

Since then Meetup Manager has evolved and has been optimized. You can now easily visualize your groups performance over time with beautiful charts and at the start of August 2015 I completely re-wrote Meetup Manager using Xamarin.Forms to create a shared user interface and also give it a huge refresh.

How much code is shared?

I have included an "Analysis Project", which will count the shared lines of code. 95%+ of the code is shared between projects. All of the Models, Services, View Models, Views, and tons of helper classes are all found in one single PCL library.

How you can test it.

Simply download the app from the app store or download the code and run! It's that simple as I have provided sample API keys to get you going.

Enabling Xamarin.UITest

To run UITest you will need to provide a test account email and password. Simply open up MeetupManager.UITests/Tests.cs and enter your username and password.

Enabling Syncfusion Charts

By default I have commented out the Syncfusion Charts as you will need to either start a free trial or purchase Syncfusion Essential Studio for all sorts of awesome controls. To get started simply download a trial from our component store: https://components.xamarin.com/view/syncfusionessentialstudio

After downloading the Component, you will want to ensure the following references have been added to each project, and add a bit of initialization code.

iOS

  • lib/ios-unified/Syncfusion.SfChart.iOS.dll
  • lib/ios-unified/Syncfusion.SfChart.XForms.dll
  • lib/ios-unified/Syncfusion.SfChart.XForms.iOS.dll

In the AppDelegate.cs after Forms.Init(); add new SfChartRenderer();

Android

  • lib/android/Syncfusion.SfChart.Android.dll
  • lib/android/Syncfusion.SfChart.XForms.dll
  • lib/android/Syncfusion.SfChart.XForms.Android.dll

In the MainActivity.cs after Forms.Init (this, bundle); add new SfChartRenderer();.

Portable Class Library

  • lib/pcl/Syncfusion.SfChart.XForms.dll

Open up Views/Statistics.xaml and comment back in the chart. Open Views/Statistics.xaml.cs and comment back in the Chart code to set the zoom level.

What technology is used?

Everything is written in C# with Xamarin, with a base PCL library. This project couldn't have been done without the following:

Xamarin.Forms

http://www.xamarin.com/forms: Use the Xamarin.Forms API to quickly build native apps for iOS, Android and Windows completely in C#.

Settings Plugin for Xamarin and Windows

https://github.com/jamesmontemagno/xamarin.plugins - I wrote this, so you should probably use it for cross platform settings :)

Image Circle for Xamarin.Forms

https://github.com/jamesmontemagno/xamarin.plugins - I wrote this, so you should probably use it for beautiful circle images!

Json.NET

https://components.xamarin.com/view/json.net - I use both the NuGet in the PCL and component for iOS for facade linking. One of the most wonderful Json libraries that I simply love. It is used to deserialize all information coming from the meetup.com APIs.

Xamarin.Auth

https://components.xamarin.com/view/xamarin.auth - Allowed me to integrate in oAuth 2.0 from Meetup.com in under 1 hour.

Discreet Notifications

https://components.xamarin.com/view/gcdiscreetnotification - Bringing toast notifications to iOS

Modern HttpClient

https://components.xamarin.com/view/modernhttpclient- Faster apps with a faster httpclient handler!

Xamarin Insights

http://xamarin.com/insights - Add real-time monitoring with precise, detailed error reporting to your apps in a single line of code.

SQLite-Net PCL

https://www.nuget.org/packages/sqlite-net-pcl/ - SQLite in your PCL and .NET by my good friend Frank Krueger

License

The MIT License (MIT)

Copyright (c) 2015 Refractored LLC / James Montemagno

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.