Coder Social home page Coder Social logo

romanisthere / measureland Goto Github PK

View Code? Open in Web Editor NEW
22.0 5.0 4.0 173.08 MB

An independent interactive encyclopedia of searching for accommodation. Community-driven and completely free (FOSS).

Home Page: https://measureland.org/en/

License: GNU General Public License v3.0

JavaScript 34.42% CSS 8.01% HTML 0.09% Svelte 57.43% Shell 0.05%
share-experience blog guidelines guides non-profit non-commercial map reviews reviews-portal encyclopedia

measureland's Introduction

I'm an independent JavaScript Front-end developer ๐Ÿ’ป working on improving the web ๐ŸŒ. Feel free to contact me with any questions or ideas, I am friendly.

  • ๐ŸŽ“ Bachelor's degree in Mathematics

  • ๐Ÿ”ญ 7 years of experience in my area

  • โšก Around 30 finished and actual projects. Intention to make the Internet better

  • ๐Ÿ’ผ Check info about me here: https://romanisthere.dev/

  • ๐ŸŽ‰ Connect on LinkedIn

  • ๐Ÿ‘ฏ Follow the project updates on Twitter and Telegram

  • ๐Ÿ“ญ [email protected]

๐Ÿ•ต Glad to see you here :)

measureland's People

Contributors

dependabot[bot] avatar dragunowski avatar romanisthere avatar

Stargazers

 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

measureland's Issues

Improved stats and more badges

image

  • Instead of gathering stats by ratings, gather it by bad (1-2), average (3) and good (4-5), if only 5s are there, for example show awesome instead of good and so on. On hover show detailed info: (example) 5 users marked water as good - on hover (4 users rated "5" and one "4")
  • add more badges
  • (to think) include POIs into the badges or wisdom's of the crowd decision

Info:
Stats gathering: https://github.com/RomanistHere/Measureland/blob/master/src/lib/components/Overlay/components/popups/NearbyPopup/generateSmartReport.js
Badges generation: https://github.com/RomanistHere/Measureland/blob/master/src/lib/components/Overlay/components/popups/NearbyPopup/generateBadges.js

External API

Possibility to get "Measureland rating" (something like "check nearby ratings") from API by coordinates. Maybe paid.

Profile page

What profile page should contain:

  • reactions to comments: #13
  • reactions to ratings
  • change name/password
  • charts with data across ratings
  • badges: beta-tester, likes clean water and so on
  • number of ratings left
  • list of rated places
  • replace email with login name

Send forms with Ctrl + Enter

  • Check if it's used on mac
  • Add keyup listener on Textareas
  • Add a hint (like with Esc and closing button), so use will know that it's working and how

Provide links to communities of immigrants.

To make life of people who fled from their countries without preparation (of who just didn't prepare) collect and display interactively (to think: how?) depending on country links to different community groups/chats in Telegram and other platforms.

20$. Light pollution API.

Requirements:

Convert existing map or dataset (Whole world, 2020 or later - 2021 pref.) to lat-lng based API with light pollution rating from 1 to 5.

image

Links

Map:

Images:

Other sites to get data:

Money

This task is for hire. If you want to complete it, write "I claim this task" in comments and write to "[email protected]" so we will discuss details privately.

Additional (separate) rating for cities

Complex task. First we need to figure out what criteria should be there, probably start with 3-4. Some examples:

  • Culture level (is an umbrella term which encompasses the social behavior and norms found in human societies, as well as the knowledge, beliefs, arts, laws, customs, capabilities, and habits of the individuals in these groups - everything of it. Museums, behavior and so on)
  • Gender equality (are there are problems or not)
  • Cultural diversity (probably should use another term, how much different cultures, races. How easy to be a foreigner)
  • Employment (how easy to find a job)
  • Internet/phone quality/pricing

Most complex thing is to separate geo coords into cities and attach ratings to it.

Photos, 3D views, Street view

https://developers.google.com/maps/documentation/javascript/streetview - unluckily, there is not much of choice but Google, Yandex or something that big and privacy not oriented. Google actually is the only option if we want to have good coverage. We would probably be able to significantly reduce tracking, but still options are pricy, so...

Alternatives:

Google/Yandex docs:

Remove registration email from DB

For those who don't want to be identified even if we somehow leak the data from DB we can remove email from email field and change it to any string user wants.

However, we need either to keep all the emails (just as a list) in a separate DB, not connected to to users, so we prevent multiple registrations from the same email or make it cost something like 20$ - 50$ in crypto to completely wipe it out.

Dark mode

I guess we need it too.

Steps:

  • Investigate best practices generally
  • Investigate Svelte + Tailwind ready solutions
  • Pick dark-theme colors
  • Check map color schemes
  • Implement it

Add CSRF protection

https://stackoverflow.com/questions/20504846/why-is-it-common-to-put-csrf-prevention-tokens-in-cookies
https://cheatsheetseries.owasp.org/cheatsheets/Cross-Site_Request_Forgery_Prevention_Cheat_Sheet.html
https://github.com/pillarjs/understanding-csrf
https://www.npmjs.com/package/csrf

  • with new session generate random token (for example: csrf-token) [back-end]
  • put it into cookie [back-end]
  • when POST request sent from front-end, read the value from cookie and put it into x-csrf-token header [front-end]
  • when POST request accepted, compare values in cookie and header [back-end]

It's a severe flow in security, however right now there is no reason for someone to try to exploit it. Worst it can do is to delete some ratings, which are backed up every day.

Reply to comments

Definitely need this feature.

Steps:

  • Investigate how it's usually done in MongoDB
  • Check for ready-made solutions
  • Implement it

Additional things to consider:

  • should we notify user about replying to his comment? (links with #14)

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.