GoalShare is a web application where users have the ability to share their goals with others, gather around shared goals, comment on those goals, and recommend and vote on resources in order to achieve those goals. Goals function as multi-word unique tags.
All code should be commented for future editing by me. Iâ€™m able to write/edit PHP, so itâ€™s quite likely Iâ€™ll be editing code in the future.
The home page of GoalShare is aimed at being inviting and getting people to get started submitting goals and browsing the goals and top resources.
The top of the page consists of the logo as well as links to login/logout, sign up, About, Contact, Top Users, and the Goalshare Blog.
There is also a Search field in the top right that does a simple keyword search across goal titles, resources, and comments to find matching phrases.
The page will be broken up into two columns.
- A text input box to enter in a new goal (takes user to Goal submission page)
- A list of the most popular goals, ordered by popularity of number of people currently sharing the goal.
- A list of the most popular recommended resources regardless of goal. Arrows to vote resources up and down appear to the left of each goal, and under each goal is a list of number of votes.
The footer will contain other minor links.
The goal page will really be the â€œmeatâ€ of the site. Like the front page it will be broken into two columns.
- Name of the goal
- RSS feed next to it for both comments and resources
- Obvious link to â€œShare the goalâ€ which adds the user to the list of users sharing the goal.
- Links under it to other related goals (share keywords, and admin interface allows for goal relating)
- Number of users doing goal as well as list of usernames doing goal with links to their profile pages.
- Link to Add Comment
- Comments from users down the page.
- Form fields to Add Comment
- RSS Feed for comments
- List of top recommended resources for the goal with links to the actual resources themselves on external sites.
- Icon showing which category the resource is in (Web page, Video, Book/Ebook, Audio)
- Arrows to vote resources up or down based on userâ€™s opinion.
- Number of votes listed underneath each resource.
- Username of user who submitted the goal.
- Underneath the resource list is an Add Resource Link that takes the user to the Add Resource page.
- RSS Feed for resources
Profile Page (Public)
- Optional location, sex, and age display.
- List of goals they are currently sharing
- User comments down the page
- Add Comment form at bottom
- List of resources they have added
- Number of votes underneath each resource
Profile Page (Private)
Same as the public page, except the top of the left column gives the ability to change your email address, password, age, sex, and location.
Goal Submission Page
When a goal is submitted from the front page (or through any other links throughout the site) it is taken to the goal submission page which does a pre-search through all the goals and displays to users any similar goals in case their goal is already there just worded differently. It also would show any goals that were assigned as â€œrelatedâ€ in the admin interface.
Add Resource Page
When the Add Resource link is selected from a goal page the goal information is saved and passed on to the Add Resource page. If the GoalShare bookmarklet is used so there is no chosen goal, allow user to do a keyword search that pulls up matching goals so they can select their goal. Then there are form fields to:
- Title of Resource
- URL of Resource
- Category of Resource (Web Page, Video, Book/Ebook, Audio)
- Captcha to prove user is human.
Page then shows a preview of the Resource they are submitting, and asks for confirmation. It also must check to see if the resource has already been submitted for this goal making it a duplicate resource. See the Digg implementation of this when submitting a story to Digg for an example. If the user then chooses to confirm it the resource is then added with one vote from the submitting user.
A page displaying the top 25 users with links to their profiles as ordered by the total votes that their submitted resources have received.
Admin interface that allows for the following features:
- User delete/user ban
- User profile edit
- Resource delete
- Resource edit
- Comment edit
- Comment delete
- Banned URLs from resources (blocks resource submission if banned URL is used)
- Goal â€œrelationâ€ (allows us to specify that â€œinvest in real estateâ€ is related to â€œbuy a rental houseâ€ goals)
- Mass user email tool