| | 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] |