Giter Site home page Giter Site logo

gsoster / jaunt-social-network Goto Github PK

View Code? Open in Web Editor NEW
0.0 0.0 0.0 1.19 MB

Jaunt is a modular and gamification based social network inspired by Twitter that aims to make social interaction more fun and gratifying.

License: MIT License

CSS 2.53% HTML 9.44% JavaScript 88.04%
blaze leaderboard meteorjs mongodb nodejs social-network

jaunt-social-network's Introduction

Hi there 👋

Gmail Badge Linkedin Badge Github Badge

Software Engineer @ThoughtWorks. C# Mage. Working with distributed event-based financial systems. I use my programming powers to create universes from blank lines.

Github stats Top Langs

jaunt-social-network's People

Contributors

gsoster avatar

Watchers

 avatar  avatar

jaunt-social-network's Issues

Add secondary top bar

It is a frequent request to us to have a new top bar that displays user information like total number of points and achievements.

Achievements!

It is necessary to structure how the achievements will work on the system.
Draft solution:
One collection of achievements to store documents like this:

{
 "_id" : "asdqvbasdq",
 "date": "Thu Aug 18 2016 23:24:26 GMT-0300 (Hora oficial do Brasil)",
 "title": 'First Post!',
 "description": "Congratulations for your first post!",
 "image": "./firstAchievement.jpg",
 "icon":  "./firstAchievementIco.ico",
 "condition" : "count of user's posts should be at least 1 (one)",
 "conditionType" : "posts"
}

The user document should have one new embedded document:

{
"achievementId": "asdqvbasdq",
"achievedOn": "Thu Aug 20 2016 22:00:00 GMT-0300 (Hora oficial do Brasil)",
"conditionId": "asdasdq"//here goes the Id from the post.
}

See friend's posts in "My timeline"

The global timeline displays the latest posts from any user. But the "my timeline" is only showing posts from the logged user, it should display posts from friends.

Counting points from user not DRY

Right now the code below is duplicated on client/view/user/user.js and client/view/home/timeline/timeline.js

var points =  Points.listPointsFromUser(Meteor.userId());
    var totalPoints = 0;
    points.map(function(x){totalPoints += x.points;});
    return totalPoints;

A file with frequent functions should be created and this code should be put there.

Add test users on startup

Add some test users on project startup so it is not necessary to register new ones to each new installation or after each meteor reset.

User's public profile page

Create an easy to access profile page for users.
it should be something like: /user/name or /user/id.

Desafio (challenge)

Os passos para desafiar alguém a comentar um post é de ir no perfil da pessoa e desafiar ela lá para que ela tenha que (ao ver o alerta no seu perfil), ir até o perfil da pessoa que desafiou e ainda escolher quais posts ela vai querer comentar. Proponho o seguinte:

  • O desafio possa ser feito de um post ou do perfil de um usuário: Por exemplo, quando eu desafio alguém, posso estar em qualquer lugar, seja o feed, o perfil do usuário que eu quero desafiar ou o meu perfil. No meu perfil, teria o botão com a label: "Desafiar amigos", no perfil do amigo, um botão com a label apenas: "Desafiar". Nestes casos, os usuário desafiados teriam que escolher qualquer post para comentar, forçando o usuário a se inteirar de vários assuntos que desafiante está escrevendo (para escolher um a comentar). Se eu estiver no meu perfil e clicar em Desafiar amigos abriria uma página/janela/modal onde eu poderia selecionar um ou mais amigos a comentar qualquer coisa do meu perfil. Se eu estiver no perfil de um amigo, e clicasse em Desafiar já estaria selecionado o amigo que eu estou desafiando, mas também me daria a opção para adicionar mais amigos.

  • Desafios feitos em posts: Seria a forma de desafiar amigo(s) para comentarem um post em específico. Não dando a liberdade para que eles escolham entre vários posts. Assim, seria uma forma mais direta, de conseguir interações de determinado assunto. Isso da controle ao desafiante de trazer o foco de discussões a algum tema em especial, chamando as pessoas certas para debater.

  • Botão comentar no alerta: Senti falta de um botão no alerta que já me leve ao perfil do usuário que me desafiou, ou no caso de comentar um post em especial, direto ao post que eu preciso comentar. No caso de um post, ao clicar neste link, acho que seria legal abrir direto em um editor, com o post acima e o editor abaixo, para que o usuário já coloque seu comentário, sem precisar ir a algum lugar. Uma modal seria interessante, visto que após o desafiado enviar o comentário, ele poderia selecionar outro desafio para comentar. No caso do usuário ser desafiado para escolher um post qualquer, talvez seja legal ter um botão para ir até o perfil do desafiante.

  • Botão de alertas com contador: Como os alertas são um detalhe importante da rede, acho que um ícone no topo, com um contador de alertas seria uma estratégia interessante. O usuário clica nele e exibe todos os alertas enviados para ele, sem a necessidade dele ter que ir até o seu perfil.

  • Notificações Os alertas poderiam estar nas notificações. Isso seria algo interessante, visto que as notificações funcionam muito bem.

Send messages with the enter key

After write a message, the enter key does'nt send the message. It is necessary to click in a button.
TODO: 'Enter' key should send the current typed text to the server, 'ALT' + 'Enter' should break line.

It is necessary to refactor the MyTimline and GlobalTimeline data binding

It is obvious that the way it work now is not good practice and was done just to make it work.
It is necessary to make the helpers manage where from the data will be fetched based on the Session. That way it will be possible to remove some html/js files and make the whole process more maintainable.

Followings in homepage/profile page always shows 0 (zero)

Right now the number of followings is always being displayed as zero even if the user is following other users.
In the Friendships collection the data is being saved as follow:
{ "_id" : "8cgh7rNgH4B9SL4fW", "userId" : null, "friendId" : "rb8ATrv87ZnFccEWK" }
It probably is a bug related to the save new friendship function (follow).

Add infinite scrolling feature

Add an infinite scrolling and a scrolling limit (like in Facebook). It should display a message/link to reload the timeline using as sort parameters the last viewd post - the max number of posts that can be shown at once.

Remove Insecure package

migrate all db access functions to Meteor.methods and Meteor.calls so it will be possible to remove the insecure package.

Total count of followers gets increased when back action is taken on browser

When a user press the back button of a browser (button to go to the preview's web page) immediately after add another user as following the followers counts for that user will increase. It should not.
Probably it is due to the way friendships are being handled in the database. Right now a new relationship is created to every "follow" action. It should check if it already exits and only after that try to add a new one.

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.