only for RuBoard - do not distribute or recompile Previous Section Next Section

Solution Components

Now that we know the system requirements, we can begin designing the solution and its components. Let's look at possible solutions to each of the three main requirements we listed previously.

User Identification and Personalization

There are several alternatives for user authentication, as we have seen elsewhere in this book. Because we want to tie a user to some personalization information, we will store the users'login and password in a MySQL database and authenticate against that.

If we are going to let users log in with a username and password, we will need the following components:

We will write functions for all these pieces of functionality. Most of them will be reusable, or reusable with minor modifications, in other projects.

Storing Bookmarks

To store a user's bookmarks, we will need to set up some space in our MySQL database. We will need the following functionality:

Again, we can write functions for each of these pieces of functionality.

Recommending Bookmarks

We could take a number of different approaches to recommending bookmarks to a user. We could recommend the most popular or the most popular within a topic. For this project, we are going to implement a "like minds" suggestion system that looks for users who have a bookmark the same as our logged-in user, and suggests their other bookmarks to our user. To avoid recommending any personal bookmarks, we will only recommend bookmarks stored by more than one other user.

We can again write a function to implement this functionality.

only for RuBoard - do not distribute or recompile Previous Section Next Section