GithubHelp home page GithubHelp logo

omsimos / umamin Goto Github PK

View Code? Open in Web Editor NEW
84.0 84.0 17.0 7.25 MB

šŸ” The platform for encrypted anonymous messages.

Home Page: https://umamin.link

License: GNU General Public License v3.0

JavaScript 1.72% TypeScript 95.38% CSS 0.54% MDX 2.36%
graphql nextjs serverless typescript

umamin's Introduction

omsimos cover

OMSIMOSĀ© COLLECTIVE

We are a passionate group of developers and enthusiasts who believe in the power of open-source software to empower communities and drive innovation. We believe in the power of collaboration and the potential of open-source software to drive innovation and empower developers worldwide.

OMSIMOSĀ© FREELANCE

Our mission is to help our clients transform their ideas into a digital reality. We understand that turning a concept into a functional and visually appealing digital solution requires expertise, creativity, and technical know-how. That's where we come in.

To learn more about OMSIMOSĀ© FREELANCE and discuss how we can bring your digital ideas to life, please visit our website. Our team is ready to collaborate with you and create impactful digital experiences that exceed your expectations.

License

Licensed under the GPL-3.0 license.

umamin's People

Contributors

blankeos avatar dependabot[bot] avatar edmer664 avatar hyamero avatar joshxfi avatar princejoogie avatar turbobot-temp avatar zomeru 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

Watchers

 avatar  avatar  avatar  avatar  avatar

umamin's Issues

word filters

image

word filters

  • per user? list of words to ban
  • app-level filter (sentiment analysis?)

delete button on messages

Is your feature request related to a problem? Please describe.
You might not need all the messages u have or just wanted to remove some for a reason.

Describe the solution you'd like
Add a delete message button

Messages problem

Describe the bug
I cannot see what anonymous messages me.

To Reproduce
Steps to reproduce the behavior:

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

Expected behavior
Nothing much

Screenshots
7D527EE3-5CC3-4C5F-8C33-AC0DA54C8D0E

Desktop (please complete the following information):

  • OS: [e.g. iOS]
  • Browser [e.g. chrome, safari]
  • Version [e.g. 22]

Smartphone (please complete the following information):

  • Device: [e.g. iPhone6]
  • OS: [e.g. iOS8.1]
  • Browser [e.g. stock browser, safari]
  • Version [e.g. 22]

Additional context
Add any other context about the problem here.

I can read anyone's private Umamin inbox with a little tinkering to the original GraphQL request

Describe the bug
This vulnerability/bug is also known as Insecure Direct Object References (IDOR) Bug. This bug allows unauthorized users to view anyone's Private Messages by obtaining the target user's receiverId/userId

To Reproduce
Steps to reproduce the behavior:

  1. the endoint /api/graphql is the one vulnerable to this attack
  2. My POST request data is as follows:
{"query":"mutation sendMessage($input: SendMessageInput!) {\n  sendMessage(input: $input) {\n     id\n    receiverId\n    content\n  }\n}\n","variables":{"input":{"receiverUsername":"TARGET_USERNAME","content":"CONTENT_HERE","receiverMsg":"Send me an anonymous message!"}},"operationName":"sendMessage"}
  1. (Explanation to the request above) I just added receiverId variable to the original graphQL request.
  2. The endpoint will unexpectedly respond with the private receiverId value like below:
{"data":{"sendMessage":{"id":"yyyyy-yyy-yyyy-yyyy-yyyyyy","receiverId":"xxxxxx-xxx-xxxx-xxxx-xxxxxx","content":"CONTENT_HERE"}}}
  1. Now , send another POST request to the same endpoint /api/graphql
{"query":"query getMessages($userId: ID!) {\n  messages(userId: $userId) {\n    id\n    content\n    isOpened\n    receiverMsg\n  }\n}\n","variables":{"userId":"THE_RECEIVERID_YOU_OBTAINED_EARLIER"},"operationName":"getMessages"}
  1. The endpoint will respond with the private messages corresponding to the userId you obtained
{"data":{"messages":[{"id":"yyyyy-yyy-yyyy-yyyy-yyyyyy","content":"vvvvvvvvvv","isOpened":false,"receiverMsg":"Send me an anonymous message!"},{"id":"yyyyy-yyy-yyyy-yyyy-yyyyyy","content":"vvvvvvvvvv","isOpened":true,"receiverMsg":"Send me an anonymous message!"}]}}

Expected behavior
This endpoint should return an error and not allow anyone to just grab other's private userId AND/OR the endpoint should not allow the use of any valid userId to non-authorized users

Showing visitor address

My problem is Iā€™m always wondering who the person who messaged me is or if it is still the same person who messaged me yesterday. Yes, I know this is anonymous for messages, so it really needs to be hidden, but I would like to suggest a solution to avoid confusion.

The solution I would like to request is that when someone visits this site to confess, then their device location or the location of the person who sent me an anonymous message will be detected and notified to my notifications. Like, for example, the same thing with the Wix site app. If you visit the site, the location of those who visit my site can be detected and it will notify me. I mean, it is still anonymous because the real identity and username are still hidden, but the location is not hidden to avoid confusion and to be notified. It would be better if their location could be detected because then you would know if the person who messaged you yesterday is still the person who messaged you today.

I will send screenshots of an example of this kind of solution and what it looks like. Trust me, this is better and will lead to a safer environment, especially since people nowadays love to message rude and mean confessions, so I hope this request will be processed soon.
Uploading Screenshot_20220731-185111~2.pngā€¦

Bug report

Describe the bug
i cant read anonymous message. Itā€™s disappearing when Im trying to open it.

To Reproduce
Steps to reproduce the behavior:

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

Expected behavior
I expected it will be fixed as soon as possible. I reported it earlier but its not working.

Screenshots
16F5E5E1-FB2D-4FF3-9AD3-6BCAFD907E7E
AFE07608-5D60-41FC-9D06-2679C8C95DAC

Desktop (please complete the following information):

  • OS: [e.g. iOS]
  • Browser [e.g. chrome, safari]
  • Version [e.g. 22]

Smartphone (please complete the following information):

  • Device: [e.g. iPhone 11 pro max]
  • OS: [e.g. iOS15.6]
  • Browser [e.g. safari]
  • Version [e.g. 15.6]

Additional context
Its keeping disappearing

Show location

My problem is Iā€™m always wondering who the person who messaged me is or if it is still the same person who messaged me yesterday. Yes, I know this is anonymous for messages, so it really needs to be hidden, but I would like to suggest a solution to avoid confusion.

The solution I would like to request is that when someone visits this site to confess, then their device location or the location of the person who sent me an anonymous message will be detected and notified to my notifications. Like, for example, the same thing with the Wix site app. If you visit the site, the location of those who visit my site can be detected and it will notify me. I mean, it is still anonymous because the real identity and username are still hidden, but the location is not hidden to avoid confusion and to be notified. It would be better if their location could be detected because then you would know if the person who messaged you yesterday is still the person who messaged you today.

I will send screenshots of an example of this kind of solution and what it looks like. Trust me, this is better and will lead to a safer environment, especially since people nowadays love to message rude and mean confessions, so I hope this request will be processed soon.

Screenshot_20220731-185111~2

#request
#safer

where to host database?

Currently using railway.app in production for a PostgreSQL database.

railway (left) vs planetscale (right)


Railway will be nerfing free tier
Read more

Platnetscale has 1 billion row reads a month + 10 million row writes a month for free.
Should we move to a Vitess/MySQL database w/ planetscale @princejoogie ?

PS: umamin will be free and ad-free so I want to use free tiers.

di na po mamessage link ko, pinapatry ko sa friend ko pero iba lumalabas

Describe the bug
A clear and concise description of what the bug is.

To Reproduce
Steps to reproduce the behavior:

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS: [e.g. iOS]
  • Browser [e.g. chrome, safari]
  • Version [e.g. 22]

Smartphone (please complete the following information):

  • Device: [e.g. iPhone6]
  • OS: [e.g. iOS8.1]
  • Browser [e.g. stock browser, safari]
  • Version [e.g. 22]

Additional context
Add any other context about the problem here.

security patches

TODOS:

  • csrf prevention
  • cors
  • captcha (login/register)
  • rate limiter (send message)

Showing visitor address

My problem is Iā€™m always wondering who the person who messaged me is or if it is still the same person who messaged me yesterday. Yes, I know this is anonymous for messages, so it really needs to be hidden, but I would like to suggest a solution to avoid confusion.

The solution I would like to request is that when someone visits this site to confess, then their device location or the location of the person who sent me an anonymous message will be detected and notified to my notifications. Like, for example, the same thing with the Wix site app. If you visit the site, the location of those who visit my site can be detected and it will notify me. I mean, it is still anonymous because the real identity and username are still hidden, but the location is not hidden to avoid confusion and to be notified. It would be better if their location could be detected because then you would know if the person who messaged you yesterday is still the person who messaged you today.

I will send screenshots of an example of this kind of solution and what it looks like. Trust me, this is better and will lead to a safer environment, especially since people nowadays love to message rude and mean confessions, so I hope this request will be processed soon.
Uploading Screenshot_20220731-185111~2.pngā€¦

user in inbox not changing on first render

Describe the bug
Account/user's inbox does not change after signing out and then logging in with a different account but only changes after a reload.

To Reproduce
Steps to reproduce the behavior:

  1. Login
  2. Logout
  3. Login with a different account
  4. You'll see that the user in the unique link was from the one you previously logged in

Expected behavior
The user in the inbox should be the one that is currently logged in on first render

Screenshots

  • logged in as test but previously logged in as testuser.
    image

set own password

currently the app generates a random password to use for logging in during the signup process.

i think it is better to let them set it on their own during sign up considering we have no reset password (yet). which would require them to register their email later on.

they can also easily forget or misplace the generated password for them (which i did a few times and had to delete that user from the db)

WDYT? @joshxfi @hyamero

GraphQL JWT

cors will be replaced with JWT token to protect API route (to allow queries in the mobile app). JWT token to include userId in payload

note on useQuery key

useQuery expects a key and uses it for caching. when fetching something that has a dependency, make sure to add it to the key.

e.g.

// This is how the current is
const user = useQuery("user", () => getUser({ username }))
// ^ We are using a variable (username) in the `getUser()` so it is a dependency.
// This will cause caching errors if the key is just "user"

// instead we should update the key to:
const user = useQuery(["user", { username, /* other deps */ }], () => getUser({ username }))
// ^ This is how you should query a user. This also applies to other queries like user messages, etc.

READ MORE

cc @joshxfi @hyamero

Nawawala ung mga message

Describe the bug
A clear and concise description of what the bug is.

To Reproduce
Steps to reproduce the behavior:

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS: [e.g. iOS]
  • Browser [e.g. chrome, safari]
  • Version [e.g. 22]

Smartphone (please complete the following information):

  • Device: [e.g. iPhone6]
  • OS: [e.g. iOS8.1]
  • Browser [e.g. stock browser, safari]
  • Version [e.g. 22]

Additional context
Add any other context about the problem here.

umamin bug

Describe the bug
it shows that i have 3 umamin messages but i can't view any of them. all of them starts disappearing in a split second after refreshing.

To Reproduce
Steps to reproduce the behavior:

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

Expected behavior
i expect to see my umamin messages after this.

Screenshots
Screenshot_20220730-222535_Chrome
Screenshot_20220730-222537_Chrome

Desktop (please complete the following information):

  • OS: [e.g. iOS]
  • Browser [e.g. chrome, safari]
  • Version [e.g. 22]

Smartphone (please complete the following information):

  • Samsung Galaxy j4 plus
  • Android
  • Chrome
  • ver. 9

Additional context
Add any other context about the problem here.

share button

image

  • add a share button in each message card
  • will export an image of the message card (used to post in ig story etc.)

if possible,

  • a share button that directly creates a story instance in instagram

Display bug

Screenshot_20220728-230419
You are unable to receive a message unless you use original browser.

Link error

Bug
Opening link error

To Reproduce
Steps to reproduce the behavior:

  1. Go to 'dashboard'
  2. Copy URL
  3. Open URL

Screenshots
image
image

analytics

  • add google analytics
  • we can use firebase for this
  • used to track number of users and geo info

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.