Name: Aayushi Singh
Location: Bangalore, Karnataka
Hello everyone, I'm Aayushi Singh, a self-taught developer from India. I am an undergrad student for a Bachelor of Engineering and have worked on various interesting projects including websites and other interesting applications under various organizations and communities.
MapKnitter is software developed by Public Lab to help you turn your photos into maps! It's SUPER easy to use and runs in the browser. They make aerial photos from the user-submitted images that float over our site's MapKnitter servers, running at http://publiclab.org/mapknitter . The manual process of making maps with MapKnitter differs greatly from automated aerial imaging systems. In those systems, the imaging is of higher precision and processed with spatial and telemetry data collected along with the imagery, typically at higher altitudes and with consistent image overlap in the flight path sequence.MapKnitter is user-friendly since all you need to understand how it works is a browser. It's also great because anyone can use both their desktop and their mobile phones to access the tool.
Abstract/summary (<20 words):
- Display information about each map, such as the author's status, how many images it has, whether images have been placed, whether the author is new
This page provides all sorts of info related to the author's status, number of images, and comments on them, providing an overall comprehensive overview of the content held by an author.
On this page, the tag of New Author with other tags will also be depicted as per the description. For that, we need to create Hashtags for Map Post.
When an author creates a new map post with a description like this: "I love #mapknitter, I am an #NewAuthor". I expect our system will also create 2 hashtags with the names are mapknitter and NewAuthor.
Step 1: Extract Hashtags from the description of the Map Post
Add an instance method to the Post model to extract hashtags:
This method will return to an array of name hashtags. For example
Step 2: Add a callback to create hashtags after creating a Map Post.
Active Record supports a lot of useful callbacks. We use the after_commit callback for our MapPost model, this callback is called after a post has been created, updated, or destroyed. But now, we just want to trigger this callback when a post is created, so we add more: on option for specific to create action.
Define this callback in the Post model:
The create_hash_tags method will be called after a post is created.
- Check via the Public Lab API whether the currently logged-in user is a moderator to determine if they can view the spam table
We can use Custom Middleware to implement this option, instead of an API to fetch the details of the role on each request to our rails application with a specific account, we don't have to change our routes.rb.
First, use ActiveSupport::CurrentAttributes. It will simplify the per-request attributes access.
Then our AccountMiddlreware will identify an Account by the id, and update the request path accordingly.
NOTE: request.script_name is required to overwrite other links on the page. Otherwise, the new link will be: /projects/new w/o the account_id
- Add a link/tab from publiclab.org/spam2 to the MapKnitter spam dashboard
In the Public Lab spam management dashboard, there is a section that lists links to other sites that provide additional information regarding issues in the community. For example, on the right-hand side, there is a link to Mapknitter (link), which serves as an effective tool for managing spam posts in the Public Lab forum.
- Display a list of any maps banned, PublicLab.org user has (if any) when they are banned
Once a moderator bans a single author successfully, they will be redirected to a page displaying all the maps of the banned author. We can use the kaminari gem (an implementation of the blazing-fast infinite scroll for Ruby on Rails applications) to improve page loading times and make it efficient. It will consist of the information about the map and no of images with the preview of frequent 3 images in the card. Only Moderator will be able to see what is present inside the banned maps.
We can notify certain people about a map whenever it is banned.
Just create 'banned_maps_mailer.rb' in app/mailers/ folder.**
In our Map model, we can use an after-commit to send an email when the banned attribute of the map model is made true.
- Offer a button to spam all maps by that user in one click, like mapknitter.org/spam/user/
Once a moderator bans a single author successfully, they will be redirected to a page displaying all the maps of the author. The moderator will be able to click on a Spam All Maps button to bulk-spam all the maps belonging to that author.
- Forbid login by users who've been banned on MapKnitter, by setting their status to 0
As shown above, a message appears telling the banned users that they cannot be login.
The device comes with various features of forbidding certain users from signing in, the method is called active_for_authentication? Create a column called is_active for the User model. Then add the code below to the User model:
- Regularly check (hourly? daily?) (when running the current_user function) if users have been banned from publiclab.org (via an API call)
We can Use the Devise gem of Rails to do the regular check. As we know Devise is composed of 10 modules in it, which will make it easier for us to handle other stuff like locking the account after a specified number of failed sign-in attempts by Lockable, expiring sessions that have not been active in a specified period of time by Timeoutable along with the support of Omniauthable.
A diverse community that will help me review the changes and guide me with better solutions.
- Overall community involvement (like helping others):https://github.com/search?q=commenter%3Aasaayushisingh+org%3Apubliclab&type=Issues
- FTO : https://github.com/publiclab/infragram/pull/370
- PRs merged(3),approved(1) and reviewed(4):https://github.com/publiclab/mapknitter/pulls?q=is%3Apr+author%3Aasaayushisingh
- Issue raised:https://github.com/publiclab/mapknitter/issues/created_by/asaayushisingh
During my time as a technical intern at Las Innovations, I got familiarise with 3D surveying and aerial mapping which helps in solving problems faced in modern industries regarding human safety, they aim at solving the same using Robust Unmanned Systems with our diverse products and provide remote access to people
During my time as a full-stack developer at Bigbuddy.in, I used Ruby on Rails for their project stack and helped them with some new functionality. Along with working alongside developers from different educational backgrounds, I also developed my own knowledge of development from the ground up.
During the pandemic, I started writing technical articles - https://hashnode.com/@asaayushi, which gave me a new edge on how communities can help each other out by sharing their knowledge and experiences.
Working collaboratively with a team that learns from one another is one of the most fulfilling ways of working. As a part of BigBuddy, I have experienced exactly this kind of environment and it has helped me grow tremendously over the past couple of months I have been here. One of my main responsibilities here is to optimize the user experience and develop and maintain various pre-existing components as well as redefine internal tools and make them easy for everyone to use.
The internet is a blank canvas. Public Lab is an open science and environmental justice community committed to making this canvas less white, and more green and appropriate for the future.
A person's passion is what drives them to pursue opportunities and activities without reservation. We all want to help the world and make it a better place. But it's hard to know where to start! To the rescue comes open science: the idea of using advances in technology, data analytics, and citizen science. My development in programming accelerated because of the fact that I have unlimited access to instructional videos, blogs, tutorials, and articles on the internet. If these were reserved for a single demographic such as people who went to college for Computer Sciences majors only, then a valuable opportunity for knowledge would be inhibited and I think this holds true for other people like me.
Before stumbling across PublicLab, I was convinced that combating environmental injustice was largely impossible for those living in poor communities, other low-income earners, and even communities living with environmental pollution issues. I now realize that these types of barriers can be overcome by the average individual and community group due to the wealth of readily available data monitoring tools from Public Labs at http://publiclab.org/wiki/mapkitter. So, should I go for open science or environmental justice? I would love to do both at some point.
This project is for the Public Lab open network that consists of community organizers, educators, technologists, and researchers working to create an issue management platform so that truth-seekers can verify facts more efficiently, and open source contributors like myself who want to make the world a better place in our own way by MapKnitter allows communities to monitor environmental injustice on a global level. It shows how implementing small tasks can be useful, and in the long run, it contributes to bigger changes by creating code for collaborative environmental advocacy projects. I want to contribute to its continued success by creating applications that help improve the community's day-to-day experience by managing their spam effectively.
During the summer months, I'll be devoting my time to contributing to the Mapknitter by making it more user-friendly and easy to use.I do understand that this is a full-time commitment, and I am readily available to work for 60-66 hours every week from 9 AM to 8 PM GMT+1.