| 1 | = Bookmarks = |
| 2 | |
| 3 | This project is my personal replacement for del.icio.us. It has also been a very good way for me to learn about [perldoc:PSGI] and [perldoc:Plack], and some of the more modern ways of writing Perl web applications. |
| 4 | |
| 5 | == Database Design == |
| 6 | |
| 7 | The database consists of three tables: `bookmarks`, `resources`, and `tags`. I separated `resources` (which hold the URI and title of the targets of the bookmarks) from `bookmarks` (which have an ID, a creation timestamp, and a last-modified timestamp) as a matter of conceptual purity. Since the `tags` table references `resources`, it is clear from the database structure that the tag (like the title) is a property of the ''resource'', not the bookmark. |
| 8 | |
| 9 | == CPAN Modules == |
| 10 | |
| 11 | The application currently depends on the following CPAN modules: |
| 12 | * [perldoc:YAML] |
| 13 | * [perldoc:Plack::Builder] |
| 14 | * [perldoc:Plack::Request] |
| 15 | * [perldoc:Router::Resource] |
| 16 | * [perldoc:Moose] |
| 17 | * [perldoc:HTTP::Date] |
| 18 | * [perldoc:SQL::Interp] |
| 19 | * [perldoc:URI] |
| 20 | * [perldoc:Encode] |
| 21 | * [perldoc:JSON] |
| 22 | * [perldoc:Template] |