Giter Site home page Giter Site logo

pullup's People

Contributors

andersos avatar arminkhoshbin avatar bluetidepro avatar busterbeans avatar cgroner avatar crankeye avatar curiositry avatar dfjones avatar exadeci avatar hemanth avatar jackcarter avatar kasperlewau avatar kennethrapp avatar kevinsearle avatar markbao avatar megamattron avatar mreinhardt avatar pents90 avatar rickhanlonii avatar roryokane avatar sahat avatar samcal avatar shedd avatar sriehl avatar swelham avatar tejohnso avatar treygriffith avatar vanev avatar willurd avatar zhanglun avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pullup's Issues

License?

I noticed the repo doesn't yet have a license file. With so many people contributing it may be beneficial to assign a license sooner rather than later.

Live chat

Perhaps some form of live chat/discussion? I was thinking something similar to stack overflow chat.

Pullup IRC channel on Freenode

I've registered #pullup on Freenode. I find it useful to chat directly with people I'm working on a project with. Thoughts?

github auth requires unique email, multiple emails are null , mongo can't handle this

i get this backtrace on attempted login
maybe it's because of this line in passport.js?
User.findOne({ $or: [{ github: profile.id }, { email: profile.email }] }, function(err, existingUser) {

I can't test right now, so i'm not sure this is the problem.

Express
500 MongoError: E11000 duplicate key error index: app21917720.users.$email_1 dup key: { : null }
at Object.toError (/app/node_modules/mongoose/node_modules/mongodb/lib/mongodb/utils.js:110:11)
at /app/node_modules/mongoose/node_modules/mongodb/lib/mongodb/collection/core.js:212:24
at Server.Base._callHandler (/app/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/base.js:442:41)
at /app/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/server.js:485:18
at MongoReply.parseBody (/app/node_modules/mongoose/node_modules/mongodb/lib/mongodb/responses/mongo_reply.js:68:5)
at null. (/app/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/server.js:443:20)
at EventEmitter.emit (events.js:95:17)
at null. (/app/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/connection_pool.js:191:13)
at EventEmitter.emit (events.js:98:17)
at Socket. (/app/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/connection.js:418:22)

Delete account should require confirmation

On the account page, there is no confirmation when deleting your account. So, one accidental click and it is gone. Some type of confirmation or dialog acknowledging you really want to delete the account would be a helpful addition.

User's Issues on Profile Page

Just as was added in #191, now that we have a page listing all the issues created for Pullup, it would be cool to see issues/pull requests created by a user on their profile page. This would in some ways complement seeing their contributions to the source in #65.

Avoiding Feature Bloat

This is a crosspost from Pullup.. Pullup doesn't currently style long text blocks very well, so wasn't a very good place to post..


One of the major difficulties that I foresee occurring with pullup.io is feature bloat. By design, there is going to be a ton of contributions/PRs for pullup.io. And, somewhat unfortunately, new features are more fun (and more impressive) to build than bug fixes.

The decentralized nature of pullup.io development rewards feature bloat. We need to be intentional about avoiding it. I don't quite know how to do this, but I think it's important to decide early on. Currently pullup.io is clean, minimalistic, and easy - let's keep it that way.

Some options:

  • Feature addition pull requests needs to get three 👍 from pullup member before they are merged
  • Feature pull requests - if tested and meet style requirements - should always grant the contributor pullup membership, even if we decide the feature should not be merged
  • We should suggest heavily that contributors work through the issues list, rather than coming up with their own work. If they want to add features, create and issue and discuss it with the pullup community first.

"User must be logged in" - while commenting

I keep getting an error while trying to comment on different news stories (while logged in).

I've tried logging out and back in, and commenting on different stories, all with the same result.

Delete Post

Deleting posts (of your own, or perhaps as a moderator-esque feature) would be useful, especially for accidental reposts.

Standards for getting a PR merged

I know it's early still, but I've noticed a fair amount of pull requests that do nothing more than add the person's github username to the authorized users list. It seemed to me that the purpose of the site was to make the entire thing "community-built", and just adding your name to the list doesn't really help build the site.

I think (and this is just my opinion) that you should have to actually do something in your PR for it to be merged. For the time being, that bar can be set pretty low, but I do think it's important to stay in keeping with the spirit of the site, instead of having it be a slightly more complicated Github authentication scheme.

Thoughts?

Posting comment when logged out creates error

Should prevent logged-out users from accessing comment form (or posting comments).

TypeError: Cannot read property 'id' of undefined
    at exports.postComment (/app/controllers/news.js:108:21)
    at callbacks (/app/node_modules/express/lib/router/index.js:164:37)
    at param (/app/node_modules/express/lib/router/index.js:138:11)
    at param (/app/node_modules/express/lib/router/index.js:135:11)
    at pass (/app/node_modules/express/lib/router/index.js:145:5)
    at Router._dispatch (/app/node_modules/express/lib/router/index.js:173:5)
    at Object.router (/app/node_modules/express/lib/router/index.js:33:10)
    at next (/app/node_modules/express/node_modules/connect/lib/proto.js:193:15)
    at Object.handle (/app/node_modules/less-middleware/lib/middleware.js:201:91)
    at next (/app/node_modules/express/node_modules/connect/lib/proto.js:193:15)

Edit My Posts

At least for some duration after the initial posting time, I should be able to edit or delete my discussion posts.

This probably applies to comments as well.

Idea for future direction of this project.

I live in Canada where have a parliament, you vote for the party which you ultimately want to fill the seat of the Prime Minister's office. The person you choose to represent your local area also ends up influencing which party controls the Prime Ministers office. What ends up happening is that everyone involved basically winds up being protectionist towards their party and logic takes a back seat a great deal of the time. The parties are also largely influenced by people who will never really grasp the potential of technology. I think most democracies face this issue in one way or another. Anyway, here is the idea...

The system is designed to verify where people live somehow, maybe someone signs up and gets mailed a verification code. You then canvas a riding which is very populated with younger generation home owners, likely urban with leaflets that explain the idea. The idea being that anyone can sign up and explore with their own curiosity. People could find new confidence that they might actually be able to offer something constructive.

The application would work something like Reddit https://github.com/reddit/reddit. With a focus on letting everyone go through a miniature democratic process where folks can really get to the bottom of what the best direction to go is.

You would then hold a vote of people in the riding to see who would like to run as the MP in the next election. Call the party something like the "Alien Party". The legal aspects would be somehow so that when they went to the capital for work they could only directly represent the exact wishes of the people of their riding in as real time as possible. A focus would be put on ensuring that technology could be used where ever possible to connect them with the people in the home riding. It would have to be something that people could interact with at the same rate the interact with reddit or twiter.

All in all, it would be really fun to see if the principals of Reddit could be applied and evolved to make democracy a bit more efficient. All the code could be open source so that anyone anywhere could take and and attempt to apply it where they live.

A more accurate way to resolve urls

I've noticed for a few posts the source url is blank. This shows up as a form field when submitting a link and can be changed to anything or nothing. Also, simply adding meaningless query vars to a url makes it easy to fool the matching url detection.

I think perhaps people should only have the option of changing the summary if one isn't provided, but shouldn't be able to change the source url. Also, the url matcher should be a bit better, although since some urls depend on query strings simply stripping them wouldn't work...

Vote up doesn't increment vote

I have just relised that I didn't increment the actual vote count when clicking the vote up button!

Relates to pull request #202

I will look at fixing this tonight if I can.

Comments page fails not signed in?

Hi, I was poking around and tried to open a comment.

To reproduce:

  • try to open any comment link when not signed in.

TypeError
/app/views/news/show.jade:33 31| |   32| span.timeago(title="#{comment.created}")= timeago(comment.created) > 33| if user.username == comment.poster.username 34| form(action="/news/" + item.id + "/comments/" + comment.id + "/delete", method='POST', class="delete-form") 35| button(type="submit", class="delete btn btn-danger btn-xs", title="Delete")='X' 36| blockquote.content= comment.contents Cannot read property 'username' of undefined

Cannot read property 'username' of undefined
at jade_debug.unshift.lineno (eval at <anonymous> (/app/node_modules/jade/lib/jade.js:160:8), <anonymous>:717:10)
at eval (eval at <anonymous> (/app/node_modules/jade/lib/jade.js:160:8), <anonymous>:803:4)
at res (/app/node_modules/jade/lib/jade.js:161:38)
at Object.exports.render (/app/node_modules/jade/lib/jade.js:257:10)
at Object.exports.renderFile (/app/node_modules/jade/lib/jade.js:293:18)
at View.exports.renderFile as engine
at View.render (/app/node_modules/express/lib/view.js:76:8)
at Function.app.render (/app/node_modules/express/lib/application.js:504:10)
at ServerResponse.res.render (/app/node_modules/express/lib/response.js:798:7)
at ServerResponse.res.render (/app/node_modules/express-flash/lib/express-flash.js:29:16)

I am not sure if I am unknowingly doing something wrong or not. Pages with no comments seems to work. This may be similar to issue #166 but I am not sure as the accounts seem to still exist.

Nested comments?

I think not being able to reply to comments inline makes for very confusing discussions. Are there any thoughts regarding adding nested/threaded comments?

Other OAuth providers

Right now the other providers (Link Google etc at https://pullup.herokuapp.com/account) don't have valid tokens and only the github one works.

Is there an intent for people to still be able to link said accounts or should those links, and all the code/dependencies those providers impose, be removed? Removing them shouldn't be very difficult if that's what's desired.

Future direction of the site

As stated on the website, pullup is right now a "featureless Hacker News clone", and it seems like all the things that people are working on are towards the goal of a feature-matching (although perhaps more usable) Hacker News.

For example, my contributions so far have been Voting and Commenting, two exact replicas of HN (and Reddit).

But is that what we want pullup to be? As far as I know, the only real thing that makes pullup pullup is that it's a community of people who all contributed to the source. But what do we want to do with that community? We already have HN, which although it isn't perfect, is pretty good at what it does. So shouldn't we try to do something different?

I don't have any ideas myself, but I think it's something we should discuss so we can all start rowing in the same direction, which doesn't have to be a remake of HN.

Score Aware Pagination

The current method of pagination does not take score sorting into account. News items are primarily sorted by their created date when a page is fetched from the DB:

function getNewsItems(query, user, callback, page) {
  page = typeof page !== 'undefined' ? page: 1;
  NewsItem
  .find(query)
  .sort('-created')
  .skip((page-1)*newsItemsPerPage)
  .limit(newsItemsPerPage)
  .populate('poster')
  .exec(function (err, newsItems) {

    if(err) return callback(err);

    addVotesAndCommentCountToNewsItems(newsItems, user, callback);
  });
}

The page is then sorted by score.

Ideally we'd order by score before we paginate.

Replace “Starter Template for Bootstrap” in page titles with “PullUp”

The <title> of each page has “ – Starter Template for Bootstrap” added to the end. It must be referring to this. I would expect to have the site name there instead, like “ – PullUp” (or “ – pullup” – I’m not sure what the correct capitalization is).

I couldn’t find that text anywhere in the project files with ack "Starter Template for Bootstrap" * or variations on that search, so I’m not sure exactly what code is causing that text to be added to the titles.

Any interest in switching to Salt for Vagrant provisioning?

The main reason I would suggest this is that Salt runs entirely on the VM and can be bootstrapped by Vagrant. This removes the need to install an extra tool for anyone looking to partake. Salt acts as a messaging service first, so it does not require remote shell executions, it messages to remote machines to preform their own execution routines. It is also configured using YAML, which is very close to Ansible, at least from a Markup sense. I must admit that I could have just made an assumption about Ansible here :P

http://www.saltstack.com/community/

I'd love to give it a try. Myself and some folks have been working on a dev ops project and we have been having a lot of success with Salt in our endeavour...

https://github.com/freesurface/stackstrap

I love this idea though! If this is not really something of interest I will see if I can ponder up a UI efficiency to get a ticket on board:P

Seed Data

It would be nice to have some seed data for local development. I can fill in news items but I don't have another github account to add votes and such.

Add CONTRIBUTING.md

Issue #61 discusses the need for a standards document for pull requests on this project. CONTRIBUTING.md is a feature that GitHub supports that puts a thing that puts this in the issue/PR page:

We should add such a file to give potential contributors guidelines, and also to refer to a central document when a PR has to be closed for not meeting these guidelines.

Here's an example CONTRIBUTING.md from Puppet.

Modifying existing DB records

In #149, the question came up as to how to modify existing database records through a pull request. It can happen (although hopefully not too frequently) that existing records need to be modified for a new feature, or just a refactor of an existing feature, to work properly.

I've never done a database migration with Mongo before, but a tool like mongo-migrate might be good for this. Does anyone have thoughts on the best way to handle cases like this?

Mongo schema design

Is there a particular reason why Comments and Votes belong to their own collection?
I'd rather have comments and votes as nested properties of the NewsItem document, as it seems that they are pretty much always queried together.

I believe comments aren't really useful on their own, neither are votes. They really are tied to a particular item. NewsItems could have a votes property as an array of embedded documents, and comments be embedded in the NewsItem in the same way. Comments would also have their own an array of votes.

I know it's kind of late to question such fundamental design decisions, but I'm concerned we might run into performance problems eventually. Plus it leads to pretty awful code for the frontpage, having to query each item's votes and comments in separate database request.

This is not supposed to be a rant in any way, I'm just trying to understand the reasoning behind the current design. English is my second language so please bear with me if I am not careful enough with my words, I don't mean to be offensive at all.

No data received

I was running the app locally on my machine, and got "No data received". I thought it must have been something wrong with my particular configuration, so I gave it a try through Vagrant, but to no avail. I get the exact same message after 120 seconds.

Is this something you're aware of? Can you help me sort this out?

User stats and profile page

Some kind of badge and stats system that shows how many votes a user has received for content, but also how much they've contributed to the source,

Use GitHub Contributors List for Authentication

Userlist.js is a very problematic method of checking Github usernames due to the merge conflicts that it can create. It also creates an unnecessary configuration file, which may grow to be fairly large.

It would be nice if someone could figure out a way to use this repo's contributors list as the authentication instead of userlist.js

Can't Link Any Accounts

From the link accounts page on Account Management, it seems like I can't link any accounts other than Github. I get OAuth errors from FB, twitter, and google.

Also, it might be nice to have a short description of the value of linking these accounts - I'm not even sure what they do.

News page fails when containing a link submitted by a deleted account

To reproduce

  • Login with Github account
  • Submit a news item
  • delete your account

After being redirect to the / path, the "You broke it" message appears

TypeError
/vagrant/views/news/index.jade:77 75| small.submit-date(title="#{item.created}")= timeago(item.created) 76| small #{' '}by#{' '} > 77| a(href='/news/user/' + item.poster.username) 78| small #{item.poster.username} 79| small #{' '}with#{' '} 80| a(href='/news/' + item._id) Cannot read property 'username' of null

Stack trace:

Cannot read property 'username' of null
at jade_debug.unshift.lineno (eval at <anonymous> (/vagrant/node_modules/jade/lib/jade.js:160:8), <anonymous>:958:63)
at eval (eval at <anonymous> (/vagrant/node_modules/jade/lib/jade.js:160:8), <anonymous>:1319:4)
at res (/vagrant/node_modules/jade/lib/jade.js:161:38)
at Object.exports.render (/vagrant/node_modules/jade/lib/jade.js:257:10)
at Object.exports.renderFile (/vagrant/node_modules/jade/lib/jade.js:293:18)
at View.exports.renderFile as engine
at View.render (/vagrant/node_modules/express/lib/view.js:76:8)
at Function.app.render (/vagrant/node_modules/express/lib/application.js:504:10)
at ServerResponse.res.render (/vagrant/node_modules/express/lib/response.js:798:7)
at ServerResponse.res.render (/vagrant/node_modules/express-flash/lib/express-flash.js:29:16)-->

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.