- 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 [email protected]: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 constants
SEO.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.