Giter Club home page Giter Club logo

wheresmyduo's Introduction

DISCLAIMER: This project is no longer active, it was a good learning experience but I have focused my carrer through a different path now. You can check my other relevant projects in my profile.

What is WheresMyDuo

The WheresMyDuo project is a in development social network designed to help gamers meet people for playing around and making friends.

WheresMyDuo born in the University of Passo Fundo as the final assignment for my graduation. It featured a rating of ten out of ten and is currently being mainteined outside the university.

The live version of the app can be accessed here.

Work in Progress

WheresMyDuo is a work in progress project and is under heavy development. Expect bugs to happen

License

All of the source code of WheresMyDuo is licensed under the terms of LGPL-v3.

Copyright (c) 2020 - Nathan P. Bombana

This file is part of Wheres My Duo.

Wheres My Duo is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

Wheres My Duo is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License
along with Wheres My Duo.  If not, see <https://www.gnu.org/licenses/>.

Also features WheresMyDuo

wheresmyduo's People

Contributors

nathanpb avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

ronsmits

wheresmyduo's Issues

Ditch the concept of friends and replace it with followers

The "friends" concept requires that both users take actions (send invite, accept invite) to stablish a connection between then. Using a concept of "following and followers" will help the users to get engaged with each other without having to wait (and hope) until the other user accept his invite.

This will also help with the data model structure that currently requires to perform updates in two profile documents when a request is sent.

Also, no more "friendRequests" collection bye bye

This is why I'm getting away from "friends" and starting with "followers"

Tasklist

  • Implement it in the backend (always easier...)
  • Remove the old "friends" code
  • Implement in the webapp
  • Change that icon of the heart that does not want to go filled
  • Make a page to see the full list of followers/following of a user. With lazy loading
  • Ship it =)

Move to fontawesome

Primeicons is pretty cool for the basics, but it is not fitting what I need anymore. I need a more complete icon set to work with

Optional authentication on pages

Currently, we are not using all the potential of NextJS because on the server side render, the authentication is not set, and all the pages requires authentication (if not authenticated you will be redirected to the login screen at any point).

This makes SSR and SG completely unusable because the server is actually rendering just the login screen.

Along with #6 which introduces the concept of making data public, we will be able to make routes that does not require authentication. Instead, renders the "public version" of the page when not authenticated and do not perform weirdo redirects.

However, pages like /me will need authentication anyway...

Improved contact information

Why

The current contact information field is very basic and hell confusing.

What

Put in the user's profile dedicated fields for platforms like Skype, Discord, Telegram. Along with privacy protection so the user can choose if it wants to make each different contact field public, friends only or completely private...

Future Perspective

Maybe integrations with auth APIs to allow link the WheresMyDuo account with accounts on other platform and automagically keep sync of the user's contact information...

Tasklist

  • Remove the old code
  • Make the backend support the new feature
  • Make a settings page in the webapp to allow change the contact values
  • Allow change the visibility of the contact values
  • Make a display of the contact values in the profile page of the users
  • Make a button to easily redirect the user to the page to edit its contact information
  • Search and implement a bit more about mask in the fields (masks on Telegram field looks promising, never used it tho)
  • Ship it =)

Feature: Highlights

Terminology

By highlights it's meant a small video clip, GIF or screenshot of a moment that occurred in a gameplay. For instance: A 10 seconds video clip where a player made a double kill.

Quick Description

The users will be able to upload the highlights that occurred during a gameplay. Those highlights will be public available in the profile of the user who posted it. Users will also be able to rate each other's highlights and make a single comment.

Flows

Upload a Highlight

In the top menu, there will be a button where users will be able to upload the file containing the highlight (image, gif or video files).

View Highlight

There will be a separated tab in the profile's screen where a thumbnail of the highlights uploaded by the profile owner will be available in a list format. Clicking the preview, the highlight will be shown in a wider format (e.g. full screen on mobile).

Remove Highlight

Users will be able to remove highlights for its own profile by going to the highlight's tab and exclude a highlight in the list.

Rate and Comment

Users will be able to attach a single comment to other people's highlights and include a rating (1 to 5 stars format). Comments and rates will be public available in the commented/rated highlight's page.

Report Highlight

Users will be able to report a highlight or a comment if it doesn't find the WheresMyDuo Community Guidelines (Work In Progress). Those reports will be available in the administrator's dashboard and will be manually judged.

Future Perspective

  • Create a "feed" like feature that shows featured highlights.
  • Analyze highlights using an IA service to detect NSFW content.
  • Analyze highlights using an IA service to detect if the content is an actual game, send it to people that actually like the game shown.
  • Be able to automagically capture and post highlights using the Nvidia Highlights feature or something like that.

Feature: Posts and Feed

Quick Description

Users will be able to make posts, which will be published in their public profile. Every user will have a feed with the most relevant and latest posts made by users that it is following.

Flow

Create Post

In the top of their feeds, users will have a field that will let them write text and post it to their profile.

Delete and Edit Posts

Users will be able to delete or edit the post text. However, an edit history will be kept, and it will not be possible to edit attachments at first.

Hot Posts

Users will be able to mark other people's posts with "Hot". That means that the user find the post is interesting in some way.

Comments and Replies

Users will be able to comment a post, and replies to this comment can be made. Comments will have the same visibility as the post. It will not be possible to reply to another reply...

Related to #1

Replace hour selection with labels describing the daytime

Why

Users (and this includes me) are lazy and don't want to manually select each hour

How

Replace the manual selection of each hour of the calendar with labels like "Early Morning", "Late Morning", "Noon", "Night". Keep it independent for each weekday. I also have the timezones to deal with later

Create a landing page

No need for complexities, just to have something to land new users on.

Probably using the existing app brand component with a bigger font size, put a login button and a bit of explanation about how it is supposed to work.

Maybe a disclaimer about not needing registration

FirebaseError: Analytics: Environment doesn't support IndexedDB

Unhandled Runtime Error

FirebaseError: Analytics: Environment doesn't support IndexedDB: A mutation operation was attempted on a database that did not allow mutations.. Wrap initialization of analytics in analytics.isSupported() to prevent initialization in unsupported environments (analytics/invalid-indexedDB-context).

Profile Badges

Make cool collectable badges to users show in their profile. Like "Staff" for the app's staff, "Sponsor", "Active User", etc

Feature: Interactive Gaming Profile wizard

Why

Because the current one is fucking ugly. This will also engage users to keep filling the profile

How

Make a wizard with three steps for first selecting the game, then the tags and the calendar after that. Keep displaying user-friendly messages like "wow, a lot of people play this" if the game is widely played, or "lol I know someone who plays this, his name is {link to profile page}" if the game is played by fewer people.

Use "Skip" or "Next" buttons to navigate through the wizard.

Also make a good game picker component showing some images about the game, maybe a carousel like component with a search bar at the bottom.

Also something more interactive for selecting the initial tags, maybe suggest tags based on the most used ones for the game that is selected.

Make one calendar per profile, instead of one per gaming profile

Since the concepts of the app are fast changing to something more engaging, I don't see more reasons to make users fill one calendar per gaming profile. Instead of this, they can just tell which days/hours they can play, and it will apply to every game in the list. However, I think it's useful to keep the tags separately between gaming profiles...

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.