Optimeet is a desktop app that provides a solution for suggesting meeting places that are suitable and convenient for all of your friends and colleagues, with the option to easily invite everyone!
Optimeet was an old idea I had in mind a couple of years ago that didn't come to life because I decided to develop OnPoint instead. The idea was revived about half a year ago when I was still in service in the military and wanted to make a comeback in programming and dust off my skills. I decided to give it a go as I thought it was a great opportunity to learn how to make an executable desktop program with an interactive UI. The project turned out to be more exciting than I imagined and was well worth the work.
- Create meetings with date, time, location, and participants and store them locally
- Optimal location search algorithm based on participants' location
- View and delete your past, upcoming and future meetings
- View, add, edit, search and delete contacts through a contact book
- Adjust application settings in a designated settings menu
- Invite people to meetings using Google Calendar via signing into a Google account with OAuth 2.0 ID Client
Problem definition - For a set of N XY points, calculate the weighted centroid.
Define:
N - number of points
a - mean of points
𝞂 - standard deviation
x - latitude
y - longitude
Using the weighted average mean:
And writing our weights as Gaussian distribution function:
Switching the coefficient of e we finally get an expression which will give us coordinates that are calculated with more bias towards the central points, this will achieve a stable centroid that outlier points won't compromise.
Suppose there are 4 people who live on the outskirts of London and another person who lives far away from London in Birmingham.
If a simple centroid calculation were applied, the red dot would've been the suggested meeting spot for everyone which is situated somewhere at Watford - which honestly would waste everyone's time and isn't the best geographical place either. Using the weights method, we get a more reasonable spot marked by the green dot not too far from London's centre. An improvement to be sure, which also turns out to be more accessible for the person who lives in Birmingham!
You can fact-check me.
How to install:
- Download the zip file
- Extract the zip to a destinated folder
- Open the folder and click on setup.exe - this will open a setup wizard
- Finish setup and the app will open and be automatically added to your start menu as well
Please note that the application is not intended for public use and won't run properly without making your own API keys If you want to use the application properly you will have to follow the instructions below: Creating the essential API keys and credentials
- Sign in or create an account at https://console.cloud.google.com/
- Create a new project
- Open the project's dashboard and go to the APIs and services section
- Enable Maps API service
- Return to APIs and services and go to the Credentials section
- Create a new OAuth ClientID and a consent screen by adding a tester mail, choose Desktop App, input 'Optimeet' in the name form and click Create. When you're done visit the APIs and keys section again and you'll see your OAuth 2.0 Client ID, download it and save it on your local computer.
- Create a new account at https://positionstack.com/
- Generate an API key for free.
- Generate a Bing Maps key following these quick steps
Storing the credentials on your local application
After you've finished creating all of the essential keys and credentials, open the application and travel to the settings menu. You can input the needed keys and the OAuth JSON's full path. You're all set! Don't hesitate to open up a new issue in the repository if you run into any additional issues.