Giter VIP home page Giter VIP logo

fotiemconstant / bond Goto Github PK

View Code? Open in Web Editor NEW
32.0 4.0 14.0 1.9 MB

Send your loved ones a vibe with a lovely sound, so they know you miss them. Anytime you want to, anywhere they are.

Home Page: https://bond-nu.vercel.app

License: MIT License

JavaScript 31.18% HTML 2.31% Vue 37.35% Kotlin 0.12% Swift 0.40% Objective-C 0.04% Dart 27.26% Ruby 1.34%
bond love connected vuejs nodejs flutter-apps flutter bond-app

bond's People

Contributors

bassel17 avatar buaya123 avatar dilanlongla avatar fotiemconstant avatar loadingmeerkat avatar quiet-programmer avatar tatchumnono avatar vikashd 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

Watchers

 avatar  avatar  avatar  avatar

bond's Issues

Client's do not have a mock Api for dev

The clients do not have any API for development, and I am gonna be creating the MOCK API for the application.
The mock API should be mocking all the endpoints of the actual bond backend API

some backend functionality

I want to work on some backend executions and would like to communicate it true this route.

There are some routes layed out but nothing happens when they get called. I would like to make the actual functionality of those routes.

Is there someone already working on this or not?
If so please respond with their discord @ to this issue and I will try to contact them.

Implement Authentication with JWTs (JSON Web Tokens)

Since the architecture of the backend is RESTful we need a way to secure requests to the server.

We need to create a token on user login.
The token will be used for each of the users request to the server which will help to authenticate the users and secure the endpoints.

Invite mail improvements/ideas

Invite

Instead of their email address change to Bond with .

Include a message if they have received this email by mistake (e.g if they don't know the person who sent it).

Where it says 'Te Amo' remove the box around it. Perhaps have the option for the user on the frontend to select this bit of text in the language of their choice. Either have a limited selection or this will need to be translated for many languages.

Bonded Tab - Front

It should have a column where you can see all your bonded users for future features (unbond,chat,socket functions)

Db structure!

Assuming we are just going to continue using firebase:

Users

  • DisplayName
  • Username
  • DisplayPhoto
  • Groups(priority groups like family , lovers,friends etc) the groups will contain the usernames of the people and its priority. The priority will be normal , above normal , and number 1.
  • Sounds
  • Contacts (a list of usernames)
  • Received sounds (the sounds that others sent to you! This will just be a link to the sound in the other person's storage , but you may think this is an issue because it seem like users can read each other's data. We can solve this issue by making rules that limit users to only reading a specfic portion of the user's data model)
  • Contact Requests.
    when someone sends a contact request it will be placed on both parties user and if the user accepts , it will validate that both users have agreed to become contacts.

I don't want users to be able to write to each other's contacts .

So :

  1. initally the user 1 will log in send the contact request to user 2 ,
  2. once accepted each will become friends/contacts.

so it would look something like this for visualization!!:

user1/requests = {
type: outgoing ,
to: user2,
status: pending
}

user2/requests = {
type: received
from : user1,
status : pending
}

Notification-Front

So it needs to have a notification tab that allows the user to check for updates whether its
-Check for bond requests
-Updates on sent bond requests
-Maybe latest patches
-Unbond notifs
-etc.

Integrate the auth workflow on the frontend and Mobile App

Backend is done for the auth. just need to implement that on the front end. Please can someone do that?

  • endpoint https://bond-api.vercel.app/user
  • Method: POST
  • Data(Send as an object in Body*):
{
"uid": "uid from google auth",
"name": "name from google auth",
"username": "send empty string (User can update their username later after signin)",
"photo": "profileURL from google auth",
"email": "email from google auth"
}

RESPONSE
In case they already have an account in db

[
    {
        "status": "login",
        "message": "Thanos Logged in successfully!"
    }
]

In case it's their first time

[
    {
        "status": "signup",
        "message": "Thanos account created successfully!"
    }
]

Switch UI components from Vuetify to Vuesax

I recently checked out the Vuesax component framework. And personally think it would suit our needs more for this project's web version's UI than Vuetify!

Would like us to switch... I'll start by assigning myself to this task! If anyone wants to join me working on this, should let us know beneath this issue!

.iml file needed

Issue Description
this file is needed to generate the sha1 fingerprint needed by firebase and for know it is ignored
@quiet-programmer i think your best placed to solve this as your project is the base project

The logout button shouldn't be in the center

this kind of bad from ux perspective because its such a powerful call to action and in this case its taking the user out of application , generally you'd want to put it in the corner somewhere ,to even push it further you can do what Facebook does they put their logout button inside a dropdown so the user has to first go to the corner of the page click dropdown button then find the logout button which is in the bottom basically they are making it harder for the user to get out of their application .
as you can see in the image below the user eyes follow the red lines and they end up in the logout button , I actually though it was a swipe button to get to the next partner lol
image

Documentation?

Its early in the development process , but it would be great to have a documentation section. I could handle documentation , but we should avoid doing things like dogehouse. We should document as we go so that we can have a clear understanding!

Suggestion Tab-Front

Is this a thing? do we make a suggestion tab where new users can choose to bond with people online or no?

New folder structure for the project

We need to have a good folder structure for the project!

  • Frontend
  • Backend - Node API
  • Mobile app

Please let us know if you want to work on this issue.
thanks!

Can someone suggest a db structure?

Can someone please suggest a structure for the database? I'm thinking of use building this on REST. and or the RTC(real time communication) we use WebSockets!

What are your thoughts and suggestions please?

Data being passed from back to front end

Why dont we encrypt the response and then decrypt in the front-end and set the Crypt Key in the .env . That way we wouldnt have to be worried on who can see the response

New Ideas for application development/ identity!

  1. Focus more on the Mobile application development , since the mobile application will be used the most!
  2. Create landing page for mobile application(marketing)!
  3. Create Notification system(mobile or email)!
  4. Develop a clear vision as to how this bond differ from original bond touch ( one that I can think of is the ability avoid paying for multiple different bond devices if you and your lover breaks up)
  5. custom notification sounds for different lovers/contacts.
  6. CREATE WEB API FOR SENDING LINKS TO SPECIFIC SOUNDS!!

  7. Unique bond sound for notifications(our signature).

Application flow!

How will sounds get to lovers/family members?

  1. User1 will upload a sound to their account.
  2. User1 will request a sound send to their love one by username!
  3. User2 will connect to the application and the sound will play(reference to the sound stored under user1's account)!

Tech stack?

1.Node.js for the server.
2. Mongo for the db.

Groups of lovers/family members.

  1. Having a group of family members or lovers to send a sound to will help family relations.

Different types of 'friends'.

1.A normal friend(who has low priority)!
2.Family/lovers(who has high priority)!

why is this important?
This helps you filter out the unwanted noise and only hear from those most important!

collaborative song listening!

Listen to songs with a person/group by a link!
The receiving parties of the link will have a constant vibration to their device(unless turned off) , to come join the room.
Both parties can control the song queue and only can listen!
Some third party cloud function streaming the songs in the queue directly through web sockets(possible implementation of WebRTC)!

Anyone has any idea on how to host backend nodejs running websockets?

I tried hosting on vercel and Heroku, they all work fine, I mean the node part but the sockets don't seem to work, I just keep getting a log, saying ".. was disconnected!"

Any ideas on how we can work around this? Again, note, this is specifically for the sockets... can't seem to connect to the socket!

Help!!

The sign in with google button is unclear when in dark mode

Is your feature request related to a problem? Please describe.
Whenever you wanna log in and the app is set to dark mode, you pretty much can't see the sign into google button.

Describe the solution you'd like
There could be some border set to surround it or it/the background could be set to a different color.

Code/library recommendations

Consider using TypeScript. It will definitely help development in the long run as the project grows.

Use an ORM on the backend.

Additional Features

The following features should be added to the software:

  • permit the location of a partner geographically and by extension notify one another their proximity or distance between each other
  • permit partners to take personality tests and share results with one another
  • integrate notifications on special events of partners (such as birthdays)
  • extend the software to family and loved ones (in future versions)

Heading on bonded page

Is your feature request related to a problem? Please describe.
Bonded page could use a heading or some sort of indicator as to what the user is viewing.

Describe the solution you'd like
Heading line

Mobile version project set-up

A couple of you reached out to work on the mobile version of this web app. Please, who so ever sets up the project should notify us all on this issue. So the rest can follow!

Ps: Work in the ./ndole directory

Stack: flutter

Client side implementation!

Create Client side node implementation for bot development!

Bot development will be great for future chat functionality!
If we have chat functionality going then we can send out marketing information in the app to our users!

Send Invite Button

if user exists = directly send a bond invite,

else send email via Gmail API(?) and ask the user to register his/her email to bond and once authenticated, receive the invite.

Accept invite route

Build an accept invite route (Page) that takes as param from the URL domain/bond/:unique after making the user to login and then bond with the user who sent the invite

Firebase rules

Make custom rules in firebase rules to limit writing to different bond users if they aren't your friend/ lover etc

Auth workflow for user

After the google auth;

param to pass as object in request

{
"uid": "uid from google auth",
"name": "name from google auth",
"username": "send random username from 'name'",
"photo": "profileURL from google auth",
"email": "email from google auth"
}
  • auth with firebase
  • hit creatUser endpoint
  • backend checks if user already In db (If already in db just log user in, else persist data in db)

Functionality focus!

Server

  • Authentication (class)
  • Postgres setup
  • Api Endpoints(api class)
  • Session Handler(class)
  • Db Querier (class)
  • Socket Handler (class)
  • Sound Queue implementation(class)

Mobile:

  • Vibration functionality(class)
  • Push Notifications
  • Sound Notification(if possible)
  • UI ideas
  • api calls to server
  • chat room service
  • logo

Web :

-mirror mobile functionality

AFTER Basic setup:
WE NEED:

0 .Groups
1.Sound listening endpoints(where people can bond and listen to the same song in real time),
2.chat feature,
3. Swipe through the songs your lover sent you(at the end of your day when your lover has sent you all of these songs , when you open the app/web app you will get a popup allowing you to swipe through the songs that your lover has sent)
4. Links to sounds(api)
5. Bond bot(for new users that have questions , a fun implemetation)
6. Data surveys for improvement.
7. location sharing.

To do - Create user endpoint

We need an endpoint to create new user in the db: https://bond-api.vercel.app/user/new
@dilanlongla please can you post here the attributes to be sent to the backend?

NB: we should stick to a standard for the endpoints.

Logo Design and Color Scheme

Simple logo for attention-grabbing with simple design and colors.
comment on what kind of logo you have in mind and I will work on the first design. (Some Experiences in logo design)

color Scheme
currently, the color scheme of the website is blue and white (darkmode).
we should choose 3 or 4 colors to be the overall scheme of the website.
comment on what color scheme you have in mind?

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.