- I'm tired of reading books that aren't relevant
- I'd like to easily organize books I want to read
- I want mentorship but I don't even know how to start
Demo here: booklab.meteor.com.
Note: This is still a work in progress.
When I'm looking for a new book I want to find books from people I look up to So that I can be sure the book is relevant to my interests
When I'm looking for people I look up to I want to search for them by their full name, display name, email address, twitter contacts So that I can find them easily
When I find someone that I look up to I want to be able to follow them So that I can see their book recommendations appear in real-time
When a book is shared I would like it to include a title and author So I can do my own research on the book
When a book is shared I want to see a short description from the person who recommended it So I can see whether it is something I'd like
When a book is shared I would like to see the genre of the book and other books within that genre So I can see similar books that I may like
When a book is shared I would like a link to Amazon or other retailers So I can gauge other reviews and easily make a purchasing decision
When a book is shared I would like to see whether others said anything about it So I can get a better idea of what it's like
When there are book recommendations I like I want to be able to add them a reading list So that I can have a list of future reads that's device-agnostic
When there are books in my reading list I want to be able to prioritize them as I wish So my reading list becomes more meaningful
When there are books in my reading list I want to be able to sort them by rating, genre, recommender So that I can make more sense of the books
When a person I admire has posted a new book I want to be notified through email So that I can review their recommendations easily
When a book is shared on my wall I would like to be able to chat with the recommender about that book So that I can have a productive, on-going conversation
When I've read a book that I like I would like to share it on my public wall So that my followers may have a chance to read it
This is still a work in progress.
- Books - users can post their books
- title
- author
- genre
- description
- amazon/barnes noble link
- userId(recommender)
- username(recommender)
- date(now)
- userRating
- commentsCount(0)
- Relationships - users can subscribe to each other
- userId(follower)
- userId(leader/recommender)
- Bookmarks - reading list for liked books
- pull data from Books
- date(now)
- Comments - comments from users on books
- Notifications - notify when leader/recommender posted a new book (email and via app)
Make sure Meteor is installed and up to date or run:
curl https://install.meteor.com/ | sh
git clone git@github.com:amazingBastard/booklab.git
cd mtr-booklab
meteor
It is highly recommended to use Meteor Up for easy deployments. Have a look at the repository for more information.
Meteor cannot do SEO
This statement is only partially true, since there is a package called ms-seo, which has a lot of neat little tricks to help web crawlers notice your app the way you want them to. Use constants under client/lib/constants.js for the app. Change SEO settings inside the routes like that.
Router.route('/about',function(){this.render('about');// Using the app constantsSEO.set({title: 'About -'+Meteor.App.NAME,og: {...}});});The browser-policy adds rules to deny all operations from external URLs. This helps dealing with clickjacking and other XSS methods used to attack the client. To whitelist a url, add following to server/config/security.js
BrowserPolicy.content.allowOriginForAll(YOUR_URL);Other security enforcing packages like audit-argument-checks and matteodem:easy-security have also been added.
- Meteor Core
- Routing
- Collections
- Accounts
- UI and UX
- Security
- SEO
- Development
The "insecure" and "autopublish" packages are removed by default (they make your app vulnerable).
client/ # Client folder
compatibility/ # Libraries which create a global variable
config/ # Configuration files (on the client)
lib/ # Library files that get executed first
startup/ # Javascript files on Meteor.startup()
stylesheets # LESS files
modules/ # Meant for components, such as form and more(*)
views/ # Contains all views(*)
common/ # General purpose html templates
model/ # Model files, for each Meteor.Collection(*)
private/ # Private files
public/ # Public files
routes/ # All routes(*)
server/ # Server folder
fixtures/ # Meteor.Collection fixtures defined
lib/ # Server side library folder
publications/ # Collection publications(*)
startup/ # On server startup
meteor-boilerplate # Command line tool
(*) = the command line tool creates files in these folders
This project has a limited MIT License, see the LICENSE.txt for more information.