ConFOMO is a simple tool that makes it easy to track your friends at conferences.

Overview

ConFOMO logo

Run tests

Connecting your online community with the real world, one conference at a time.

Built in 4 hours to help me track who I wanted to meet at Laracon 2014, and who I met there who I didn't know yet.

Updated for Laravel 5.1 and Vue in 2015/2016. @michaeldyrynda did most of the hard work there, and we documented it on a podcast.

Requirements

  • PHP = 7.4
  • Composer
  • Node and npm

Installation

  1. Fork this repository (optional).
  2. Clone the repository locally.
  3. Install dependencies with composer install.
  4. Copy .env.example to .env and modify its contents to reflect your local environment.
  5. Generate an application key with php artisan key:generate.
  6. Migrate the database with php artisan migrate.
  7. Install frontend dependencies with npm install.
  8. Build and watch frontend assets with npm run dev.
  9. Configure a web server, such as the built-in PHP web server, to serve the site using the public directory as the document root: php -S localhost:8080 -t public.
  10. Run tests with vendor/bin/phpunit.

Contributing

Submit an issue for bugs or feature requests, or submit a PR against the master branch.

ConFOMO screenshot

License

Not sure. Don't steal it? Let's call it MIT for today.

Comments
  • Laravel 5.2 Shift

    Laravel 5.2 Shift

    This pull request includes the changes for upgrading to Laravel 5.2. Feel free to commit any additional changes to the shift-3722 branch.

    Before merging, you should:

    • Checkout the shift-3722 branch
    • Review all pull request comments for additional changes
    • Run composer update (if the pre-commands fail, add --no-scripts)
    • Thoroughly test your application

    If you would like more help with your upgrade, check out the human services from Laravel Shift. And if you want to level-up your Git skills, check out Getting Git.

    opened by mattstauffer 13
  • Additional user properties from Twitter

    Additional user properties from Twitter

    I have added additional properties to the Friends table - Name, Location, Url and Description.

    Here is a brief overview of the changes:

    • The additional information is retrieved directly from twitter and populated in the database for quick retrieval. I have expanded the FetchTwitterAvatar job to provide this functionality but I can rename this class to something more appropriate like 'FetchTwitterInfo' if required.
    • I have made the following changes to the Friends list:
      • If the 'Name' property is populated via twitter, we will display this as well as the twitter handle like so: Mike Daly (@mikedaly85). This will be useful when in a conference as you can quickly remind yourself of a persons real name.
      • Added a 'details' button to the friend list item, which when clicked, opens a SweetAlert popup to display the full user profile info including - Avatar, name, location, url and description.
      • The Avatar in the popup is larger than the avatar in the listing view to improve visibility and make is easier to identify people you have not yet met. Sometimes a smaller image will make the task much more difficult, especially if the avatar is not clear.

    Some closing notes:

    • I have not added functionality to keep the information up-to-date as I didn't want to spend too much time on this if you felt the project would not benefit from this information. If you do want to accept this pull request then I can start the work and submit as a separate pull request

    This is my first pull request to any open source project so if there are any issues I would really appreciate the help/guidance so I can be sure to improve.

    opened by michaeldaly 9
  • Public meeting request

    Public meeting request

    Opening a PR to track the progress of adding the public introduction page.

    • [x] Database migration for conference start / end dates
      • [x] Model factory adjustment
    • [x] Database migration for friend ~~approved~~ introduction status
      • [x] Model factory adjustment
    • [x] Ability to determine whether or not a conference is upcoming, in progress, or finished
      • [x] Tests to verify functionality
      • [x] Render different headings based on the status of the conference
      • [ ] ~~Display conference dates (??)~~ Not really room for it
    • [x] Allow a new / online friend to suggest you meet or have met at the conference
      • [x] Tests to verify functionality
    • [ ] ~~Provide a ConFOMO user the ability to approve or delete pending requests~~
      • [ ] ~~Tests to verify functionality~~ seeing as this is only ever seen by the user, no need. The user can either leave the request (approve) or delete it (reject)
    • [ ] ~~Notification to ConFOMO user that a new request has come in (??)~~ Omitted given the Twitter API doesn't return the email address

    Note that as this is public-user functionality, we can't rely on Laravel auth for the API. Do we need some kind of added protection to stop spam from being sent to this page, or do we just discourage robots? Open to suggestions or thoughts on how we might avoid people getting unnecessary spam.

    Closes #35

    opened by michaeldyrynda 6
  • Finalise current functionality

    Finalise current functionality

    This PR is largely to tidy up the remaining 'core features' that were yet to be completed, and focusses mainly on adding new/online friends, being able to delete friends, as well as marking online friends as met.

    Add online friend flow

    In addition, when adding either a new or online friend, we'll hit the Twitter API and fetch the user's avatar. This does not yet introduce syncing of avatars periodically, but does check if the friend exists already, so will only fetch the avatar for the first lookup of a unique username.

    When deleting friends, if the last record for that username is deleted from the database, the cached image will also be deleted from disk.

    Closes #13

    opened by michaeldyrynda 6
  • Minor design tweaks, updated readme

    Minor design tweaks, updated readme

    • Removed the inline styles and added them to the stylesheet, make the paragraph text a little smaller on small screens
    • Tweaked position of logo on small screens
    opened by michaeldyrynda 4
  • Public page for allowing user suggestions

    Public page for allowing user suggestions

    Should this page require that the visitor seeing approval be logged in to the site? This would make the process of adding the name simpler, coming down to a simple 'we met at this conference' or 'we should meet at this conference' type button.

    This will submit a request for approval (a new status on the friends table suggested to meet, suggested as met), with an approved date. Display those users in the relevant new (suggested as met) or online (suggested to meet) section shaded if not yet approved, with the option to approve, or with a marker that they were suggested externally once approved.

    Furthermore, should the suggestion page show the existing new / online friends, or just be a page showing something along the lines of 'Hey, I'm ! Did we meet at ? Would you like to meet at ?

    opened by michaeldyrynda 4
  • Extract vue components to separate file and compile using vueify

    Extract vue components to separate file and compile using vueify

    The first step of the VueJS refactor is to extract all of the components into separate *.vue files and import them as components to the main Vue instance - or, as in the case of FriendsList - into the Conference component. This is just a placeholder PR to make sure I'm heading in the right direction.

    Once the underlying component structure is settled on, we can start working on actually refactoring the code as needed.

    • [x] Extract components to separate files for vueify
    • [x] Establish an appropriate import style
    • [x] Make sure that each component works as it did previously
    opened by michaeldyrynda 4
  • Add startup directions to README.md

    Add startup directions to README.md

    For people looking to join the project it is nice to have directions in the README to start the project.

    As someone who has not programmed in PHP in quite a while and has never used Laravel, I am attempting to run via php artisan serve --port=8080

    
    Fatal error: require(): Failed opening required 'confomo/bootstrap/../vendor/autoload.php' (include_path='.:') in confomo/bootstrap/autoload.php on line 17
    
    opened by ahouck 3
  • Change Codeship to GitHub Actions

    Change Codeship to GitHub Actions

    This pull request includes code to run php unit tests on GitHub actions. The codeship badge has been replaced with the GitHub actions badge on the README file and the php requirements have been updated to reflect the testing on GitHub Actions. TODO: This project should be removed from the codeship site.

    • Added Run Tests GitHub workflow.
    • Updated Readme with GitHub Actions badge replacing the codeship badge.
    • Updated PHP requirements listed in the README to reflect the versions of php that are passing the GitHub Workflow. Screen Shot 2020-12-17 at 1 49 24 PM Screen Shot 2020-12-17 at 1 49 10 PM
    opened by krievley 2
  • What do we call an Internet friend?

    What do we call an Internet friend?

    https://overcast.fm/+GDI4k9Bsk

    There are three states of a person:

    A. I know them via Twitter/etc. and want to meet them at this SuperCon B. I know them via Twitter/etc. and met them at this SuperCon C. I met them for the first time at this SuperCon

    Previously this was "old friend unmet, old friend met, new friend".

    In the current re-working it's "online friend unmet, online friend met, new friend"

    I'm not sure either system is really good. Any ideas?

    opened by mattstauffer 2
  • Bump bl from 1.2.2 to 1.2.3

    Bump bl from 1.2.2 to 1.2.3

    Bumps bl from 1.2.2 to 1.2.3.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies javascript 
    opened by dependabot[bot] 1
  • What is the License?

    What is the License?

    Hi

    I saw the text in README file about license. May you please specify the license under which this project is released? It is important so that there would be no confusion on how one can use and modify the code. You said to assume MIT as the license then why not use MIT as the license?

    opened by ahangarha 0
  • Laravel 5.7 Shift

    Laravel 5.7 Shift

    This pull request includes the changes for upgrading to Laravel 5.7. Feel free to commit any additional changes to the shift-43397 branch.

    Before merging, you need to:

    • Checkout the shift-43397 branch
    • Review all pull request comments for additional changes
    • Update your dependencies for Laravel 5.7
    • Run composer update (if the scripts fail, add --no-scripts)
    • Clear any config, route, or view cache
    • Thoroughly test your application (no tests?)

    If you need help with your upgrade, check out the Human Shifts. You may also join the Shifty Coders Slack workspace to level-up your Laravel skills.

    opened by MarcyLina 9
  • Fix todos introduced when updating twitter sync to pull other details

    Fix todos introduced when updating twitter sync to pull other details

    Old tests/etc. that checked for file sync, and the fact that we only synced avatar once regardless of how many friends had the same username, is not working right now. Need to fix.

    opened by mattstauffer 0
  • Bring back notes

    Bring back notes

    Talked with @AdamWathan about why bringing notes back would be helpful for a) who someone is and why you want to meet them etc and b) take notes after meeting. Something making it a bit more like a mini CRM.

    hacktoberfest 
    opened by mattstauffer 3
  • User Profile with Conference List

    User Profile with Conference List

    Hey Matt, Michael,

    First, sorry about the duplicate PR. Had to recreate when I noticed that my author/committer data was wrong. 🙃

    This PR includes some new functionality that is somewhat related to some of the open issues, but not directly. It creates an internal (auth-guarded) User Profile page that would list all of the user's upcoming and past conferences. For upcoming conferences, it lets the user easily Introduce themselves using the existing "Introduce" functionality.

    Importantly, this change does allow each user to choose whether or not they want their conferences to be shown publicly. If turned off (the default), any other user that tries to view their conferences will just receive a generic "This user hasn't added any conferences yet" message. Also, users cannot view the list of friends for a conference. The conference owner is still the only person who can view their friends.

    I also added a field for a Conference URL when creating a new conference, and made the conference name on the "badges" to be links to the URL, if present.

    Settings Page

    screen shot 2017-03-02 at 7 07 11 pm

    Note: I haven't added the search functionality yet, but added the support in settings

    Profile Page

    screen shot 2017-03-02 at 7 08 26 pm

    Thanks for your time and consideration! Critiques/change requests welcome :)

    opened by orediggerco 3
Private groups to share messages, photos, videos, links with friends and family.

A truly private space for you and your friends What is Zusam ? Zusam (/tsuˈzam/) is a free and open-source way to self-host private forums for groups

Zusam 104 Dec 20, 2022
This package makes it easy to add early access mode to your existing application.

This package makes it easy to add early access mode to your existing application. This is useful for when you want to launch a product and need to gat

Neo 174 Nov 26, 2022
run user analytics within your system and track user data inside your database.

WP Local Analytics plugin. run user analytics within your system and track user data inside your database. Installing Go to the plugin page from the W

Gary 5 Dec 21, 2022
WP Local Analytics plugin. - run user analytics within your system and track user data inside your database.

WP Local Analytics plugin. - run user analytics within your system and track user data inside your database.

Gary 5 Dec 21, 2022
RRR makes structured data for WordPress really rich, and really easy.

Really Rich Results - JSON-LD Structured Data (Google Rich Results) for WordPress Search engines are putting more weight on structured data than ever

Pagely 22 Dec 1, 2022
PHP bundle which makes array traversing / inserting dead easy.

XTraverse.php This bundle makes it dead easy to traverse through nested arrays/objects in PHP. Installation Via Composer composer require phiil/xtrave

Philipp Martini 2 Feb 12, 2022
Track your farming and pool performance on the Binance Smart Chain

farm.army - Frontend Track your farming and pool performance on the Binance Smart Chain. Tech Stack PHP 8 + Symfony node.js + npm (Webpack, Symfony en

farm.army 28 Sep 3, 2022
An un-offical API wrapper for logsnag.com to get notifications and track your project events

An un-offical API wrapper for logsnag.com to get notifications and track your project events

David Oti 3 Oct 15, 2022
Inventory System for keeping track of your Inventory & Supply.

Inventory System Inventory system to keep track of inventory and supply! Explore the docs » Report Bug · Request Feature Table of Contents About The P

aTq_ 1 Oct 25, 2022
A complete solution for group projects in organizations that lets you track your work in any scenario. Working in a team is a cumbersome task, ease it using our project management system.

SE-Project-Group24 What is Evolo? Evolo is Dashboard based Project Management System. A complete solution for group projects in organizations that let

Devanshi Savla 2 Oct 7, 2022
Makes indexing of your Magento store around x times faster! ‼️ Maintainers wanted!

FastIndexer This module has never been used in production. No more empty results in the frontend due to a long taking reindex process! Integrates seam

Cyrill Schumacher 79 Jul 10, 2022
This is a PocketMine plugin that helps staffs track players using commands.

Track This is a PocketMine plugin that helps staffs track players using commands. Features Allows selected staffs to watch players use commands to fac

Nguyễn Thành Nhân 6 Jun 23, 2022
Track any ip address with IP-Tracer. IP-Tracer is developed for Linux and Termux. you can retrieve any ip address information using IP-Tracer.

IP-Tracer is used to track an ip address. IP-Tracer is developed for Termux and Linux based systems. you can easily retrieve ip address information using IP-Tracer. IP-Tracer use ip-api to track ip address.

Rajkumar Dusad 1.2k Jan 4, 2023
A Laravel package to help track user onboarding steps

A Laravel package to help track user onboarding steps This package lets you set up an onboarding flow for your application's users. Here's an example

Spatie 467 Dec 26, 2022
PHP_Depend is an adaptation of the established Java development tool JDepend. This tool shows you the quality of your design in terms of extensibility, reusability and maintainability.

PHP Depend Documentation PHP Depend for enterprise Available as part of the Tidelift Subscription. The maintainers of PHP Depend and thousands of othe

PHP_Depend 837 Dec 14, 2022
This package is used to validate the telephone numbers of the countries taken into account. It also makes it possible to verify that a number is indeed a number of an operator X

phone-number-checker This package is used to validate the telephone numbers of the countries taken into account. It also makes it possible to verify t

faso-dev 4 Feb 7, 2022
WordPlate is a wrapper around WordPress. It makes developers life easier. It is just like building any other WordPress website with themes and plugins. Just with sprinkles on top.

WordPlate is simply a wrapper around WordPress. It makes developers life easier. It is just like building any other WordPress website with themes and plugins. Just with sprinkles on top.

WordPlate 1.7k Dec 24, 2022
Makes water in cauldrons boil when there's fire under it and allows players to cook food in the boil

BoilingCauldrons Makes water in cauldrons boil when there's fire under it and allows players to cook food in the boil • Description • Planned Features

Spice 6 Apr 17, 2022
Magento extension which makes it impossible for a customer to log in until the account has been activated by the administrator.

This Magento 1 extension is orphaned, unsupported and no longer maintained. If you use it, you are effectively adopting the code for your own project.

Vinai Kopp 120 Oct 10, 2022