Community Connect BuddyPress Plugin

A New Direction for Community Connect — BuddyPress

Deciding to reboot the project under what I feel to be a much better platform, namely BuddyPress, has become both a burden and blessing. On the negative end, I am  abandoning a large portion of my [unfinished and buggy] code and porting what I have to a higher level platform. Creating a BuddyPress plugin/component is more challenging than I had initially thought. While I am thankful for the documentation, the lack of examples makes it more difficult for me to read and understand the code.

Conversely, the BuddyPress API gives me more access to the users themselves. When I presented the WordPress version of Community Connect, the user object and profile were not well integrated. With BuddyPress I can simply extend the already existing user profile fields to accept my custom set of fields without having to create a separate form buried somewhere in the dashboard. All the user will have to do is navigate to My Account on the Admin Bar and view or edit their profile. Another benefit is that my “Connections” menu can also appear under the Admin Bar.

My biggest challenge now is learning to do things the BP way. Understanding the framework hooks and limitations is crucial to this project.

Hopefully I will have a chance in October to find some willing students from Munir’s class to assist me… I am in the midst of putting together an exciting presentation to make Temple students [and myself] excited about this project. After all, it is meant to benefit them in the first place.

I already have a project management solution and an SVN repository up. Now I just need to get crackin on the code… All the Drupal business at work is polluting my WordPress-Fu.

Also looking forward to WordCampPhilly at Temple on October 30th. Maybe I’ll can find some programmers there who are willing to support my cause as well!

Presentation PowerPoint: BP-connect

‘Community Connect’ or ‘StudyPress’?

To start off I should probably apologize for largely ignoring this project for the past 4 months. Between trying to find a new job a few months ago and working at said job, it’s been hard finding the time and motivation to continue working on Community Connect. Usually I am pretty burned out from coding all day at work, and the somewhat minor yet extremely annoying roadblock that I’ve encountered with this project keeps it from progressing. I haven’t looked over the BuddyPress API docs in a while, but I doubt it has gotten much better and I am still not easily able to hook in and extract a BuddyPress user object instead of querying the database and getting a set of records which is very difficult to manipulate. One night, when I am inspired to do so I think I will work through it and get all my test cases from my use case working. If anyone is interested in helping, just shoot me a message.

Anyway, since I still think about this project every once in a while, I had a neat idea on how to make Community Connect a bit more practical. Building on top of the idea of connecting students, why not connect them in a meaningful way. Social media sites are often based around some type of idea or activity. LinkedIn is for making business connections, networking, and most importantly (for some of us out there) finding and getting a job. Coincidentally, I got in touch with the recruiting company which helped me find my current job (which I love) through LinkedIn. Facebook’s activity/purpose is a bit more vague than LinkedIn. However, one particular feature comes to mind… Events… Yea, it’s a pretty simple calendar-based listing of parties, concerts, sporting events, and whatnot, but it’s very well done. People can send out mass invitations via Facebook instead of compiling email addresses or sending out texts (which is time consuming and possibly costly). So Facebook’s event feature gives it value in terms of time you save getting people to RSVP to your event or finding events to attend.

So what if Community Connect did something similar. I can think of one “event” which students may not always like, but chances are they have attended several throughout their school careers. Study sessions, and group project meetups. Although I am not a big fan of group study sessions because I prefer to study and understand the material myself, helping others learn the material can be a rewarding experience. So here’s my high-level idea for Community Connect: allow students who are members of the site create and manage project/study sessions. It’ll be simple: any person can create a Study Session and then invite other members. Conversely, site members can see what study sessions are happening. A single study session would need to have a location, the time it starts and ends, and the class it is associated with. Other things can be included such as what the assignment, test, project is being covered along with who will lead the session. People could also add any relevant documents such as chapter outlines, scans, and handouts given during that class. Another neat feature could be integrating with the Google Maps API to create a marker on Temple’s campus map (or wherever the session will be taking place) and then calculate the time and distance for each member to get there assuming that they have provided their location. Furthermore, it could integrate with the breakout room reservation system.

What does everyone think?

Test Case: Matching Students


Student – a logged in user who is part of the community site and has filled out their “connection profile”. They do not need to have a blog.

User Story:

As a student I want to be able to see what other students have a similarity score closest to mine by going into the My Account -> Connections tab.

Test Description:

This test will check whether the student can see who their profile matches with and whether or not the matches are displayed in the correct order. So a student with a higher similarity score will be displayed above a student with a lower similarity score.


  1. Create student 1
    1. Username: Joe Test
    2. Password: testing867
    3. Student Status: Freshman
    4. Interest: Business
  2. Create student 2
    1. Username: Bill Test
    2. Password: testing827
    3. Student Status: Junior
    4. Interest: IT
  3. Create student 3
    1. Username: Mark Test
    2. Password: testing267
    3. Student Status: Freshman
    4. Interest: IT

Test Procedure:

  1. Log in as student 1
  2. Navigate to the Connections tab
  3. Student 3 should be displayed above student 2 since 3 is a closer match.
  4. The similarity score should be higher for student 3 than 2.
  5. Log out
  6. Log in as student 2
  7. Navigate to the Connections tab
  8. Student 3 should be displayed above student 1 since 3 is a close match.
  9. The similarity score should be higher for student 3 than 1.
  10. Log out.
  11. Log in as student 3
  12. Navigate to the Connections tab
  13. Student 1 should be displayed above student 2 since 1 is a closer match.
  14. The similarity score should be higher for student 1 than 2.

Plugin Features Changes

The widget will now contain a single dropdown list containing a specific technical skill that a user will choose. This technical skill will server as the matching criteria. This way a student can easily find others who have strong coding, database, or project management skills.

The widget (sidebar) area will also need to be expanded in order to accommodate a larger set of matches.

Issues to Address

  • Using a PUSH approach/model to create blog posts each time increments of 10 users create an account
    • Post containts the major of the student
    • Post contains year of the student
  • Does not integrate with BuddyPress
  • For use only by current students and recent alumni
  • Uses widget to show matches
  • Use jQuery to display tooltips containing user profile information when mouse hovers over name?

Business Value of Matchmaking Plugin

If a business subcontracts a lot and allocates x amount of dollars. This script would enable managers and employees to find internal people who possess the same skillset as a subcontractor. This would reduce the cost of hiring outside consultants and instead better leverage the company’s own resources to solve a given problem.

Need a figure. 10% savings.

All employees need to fill out a professional profile and have the option to fill out a personal profile. The personal profile would allow new and current employees to get to know their co-workers and managers on a more personal level. It could also promote synergies between business units.