Experienced full-stack developer with a expertise in building responsive and
user-friendly websites, cross platform mobile apps, UI/UX designs and DevOps.
About Me
My introduction
I'm Rishav Jha, a Final year Mechanical Engineering
B.Tech
student from NIT Durgapur.
For past one year i am extensively working on projects based on React and React
Native using Typescript.
I believe in the power of open source and love to contribute to the community.
I'm currently working on my Data Structures and Algorithms skills.
0Years Experience
0Commits on Github
0Repositories on Github
0Fullstack Projects
Skills
My technical level
HTML
90%
CSS
95%
JavaScript
85%
Typescript
70%
React
80%
Bootstrap
90%
Tailwind
80%
Django
90%
Express JS
80%
Flask
80%
Flutter
80%
React Native
90%
AWS
80%
Heroku
90%
Cloudflare
100%
GIT
80%
Services
What I Do
Web Development
I develop custom websites using the latest technologies and frameworks.
UI/UX Design
I design user interfaces and user experiences for the web and mobile applications.
App Development
I develop cross platform mobile applications for Android and iOS using React Native
and Flutter.
DevOps
I have experience in Devops using AWS, GCP and Azure.
Qualification
My Journey
Matriculation
St' Stephens School
Completed May 2017
Bachelor of Technology
National Institute of Technology Durgapur
2020 to 2024
Intermediate
St' Stephens School
Completed May 2019
React Developer
Tech Particle
April 2021 to June 2021
Flutter Developer
Helpen.in
April 2022 to May 2022
Summer Intern
Reliance Industries Limited
May 2023 to July 2023
Game Developer
Cuemath
Oct 2023 to Present
Android Developer
Triunits
Jan 2022 to May 2022
App Developer
Capricon Technology
June 2022 to May 2024
GSoC Contributor
Palisadoes Foundation
May 2023 to Oct 2023
My Projects
What i made so far
Placement Management System
Made to keep track of the placement process,
by ensuring proper communication between the placement coordinators
and placement cell.
Placement
Management System
Placements are crucial for job aspirants, and so is placement
management. In the digital era, one can tremendously improve the
efficiency and quality of tasks by working out a strategy that
involves the perfect concoction of harnessing the best out of
technology and human brains. When there are 180+ companies coming
for campus placements it is difficult to keep track of the status of
the company. Whenever a company comes to our campus for recruitment
there are a set of steps that are to be followed, but when the no.
of companies become large enough it becomes difficult to manage,
moreover there should be proper communication between the Placement
Cell and the Placement Coordinators. When we look closely on this
problem we get to know placement coordination is mostly a repetitive
process and this process can be shifted from manual to
semi-automatic this will not only boost the productivity of the
placement cell and the coordinators as well but will also save time
and energy that can be utilized to work on different matters.
This Placement Management website helps to combat all of these
problems, here is a quick description of the project.
There are two types of accounts, one is for the Placement
cell and the other one is for the Placement Coordinators.
This is admin dashboard where you can see statistics of
companies, placement coordinators and tasks (that are
assigned by the placement cell to the coordinators)
This is download tab where the admin can download current
database of the companies, placement coordinators, tasks and
point of contacts in .csv format.
Here the admin can add a placement coordinator. Once a
coordinator is created the coordinator will receive
notifications (when enabled) and emails for the status of
the assigned company.
Here the admin can add a company. On the right hand side
there is a section which will show the admin if the same
company is already present or not so that the admin can
change the naming convention (Sometimes a company comes to
the campus twice).
Send notification tab, The admin can send push notifications
to the admin devices and placement coordinators who have
their push notifications enabled. There is also a section
which shows the placement coordinators who have not enabled
(or disabled) their push notifications.
List of companies tab, The admin can view all the details of
all the companies at once.
List of placement coordinators tab, the admin can view the
details of all the placement coordinators at once.
List of tasks tab, the admin can view list of all tasks at
once.
Company details screen where
The admin or the coordinator can update the
progress of the company.
The admin can edit details of the company, the
admin can also add files like job description etc.
The admin can add or view Whatsapp group link with
the company officials
The admin can send notification to all allotted
coordinators at once.
The admin can add, edit or remove a task, where as
the coordinator can only change the status of the
task.
The admin can manage the contact details of the
Point of contacts.
This is the dashboard of a placement coordinator, where
he/she can view Tasks Statistics and list of companies whose
placement process is ongoing and also the ones whose
placement process is completed.
The coordinator can view all the allotted companies at once.
The coordinator can change its status from available to
unavailable and has to state a reason for it.
The coordinator can change its password.
Features under development
A calendar to show which process is scheduled on which day.
Students database on website.
Technologies used
Frontend: HTML, CSS, Javascript, Boostrap.
Backend: Django
Hosting: AWS EC2
Placement
Management System Screens
Buzzpost
Blogging website with a social media feel.
Users can interact with other users and like and comment on their
posts. Trending page for trending posts & users.
Buzzpost
Buzzpost is a blogging website where users can post their blogs and
connect with each other.
The website has the following pages and features
Home page
Login/Signup Page
Trending page where the top 5 bloggers with highest blog
views will be shown and top 10 trending blogs.
Read blogs page where you can search blogs and you can sort
the blogs by
Views
Likes
Blog length
Newer
Older
Search user screen where you can search for a user
Search blog screen where you can search for a blog
Feedback screen.
My Blogs screen.
Write a blog screen with rich text editor (Tiny MCE).
Profile page.
My profile page.
Edit profile page.
Blogs that can be liked and commented upon
Comments which have an option to be liked and replied.
Things to be done:
Some APIs for the mobile app is to be made.
UI/UX fixes.
Technologies used:
Frontend: HTML, CSS, Javascript
Backend: Django
Hosting: Python Anywhere
Buzzpost
Screens
SamVaad
It provides you with the latest news from all
over the world in 7 different categories from different sources.
This is my first project on React which i built from scratch.
SamVaad
Samvaad provides you with the latest news from all over the world in
7 different categories from different sources. You can get trending
news from here. This was my first react project which I made from
scratch. Learnt about how to pass props from parent to child
components and how to call parent functions from child. The backend
is made using Flask and python requests module calls NewsApi and
then sends the data to the frontend. Since NewsApi has a limit of
100 requests per day, try catch mechanism can serve around 1500
requests per day.
Things to do:
Caching mechanism to cache the news this will help the
backend to serve even more requests.
Technologies used
Frontend: HTML, CSS, Javascript, React.
Backend: Flask
Hosting: Cloudflare pages
SamVaad
Screens
K Plus
K Plus is a platform which provides free and
paid courses to the students along with free resources and notes.
K Plus
K PLUS provides educational services from classes 5-12, B. Com/BBA
/CA, CS, CMA FOUNDATION (online & offline). K25
classes is the mentor and mentorship program and Krishna foundation
is the social wing which aims to provide educational facilities to
underprivileged students and empowering women via several training
facilities.
The website serves to show information about K Plus classes and has
the following pages and features:
Landing Page for K Plus classes
Landing Page for K25 Classes
Landing Page for Krishna Foundation
Login Page
Signup Page
Dashboard for the students
Home Tab where the student can see important
notifications
Free resources Tab where the student can watch
download free resources
Courses Tab where the student can preview and buy
the courses
Tests Tab
Quiz Tab
Account Settings
Update profile
Change password
Feedback
Contact office
Admin panel
To manage various links of forms added on the
website
Gallery (CRUD)
Events (CRUD)
Testimonials (CRUD)
Careers (CRUD)
Background (CRUD)
What we do (CRUD)
Our projects (CRUD)
Initial version of the website was made using React for the
frontend, but after considering the huge scale of the website we
decided to switch to Django’s Jinja2 templating engine this made
changing and developing new features for the website easier and
quicker.
Features under development:
Payment integration
Tests and Quizes
Educational Blogs
Things to Improve
UI/UX improvements
Minified CSS and JS for faster loading
Uniform design throughout the website
Technologies used:
Frontend: HTML, CSS, Javascript, Bootstrap.
Backend : Django, PostgreSQL (Database)
Hosting: AWS
With the use of Google Lighthouse, SEO of the website is improved to
an extent when you google “K Plus Classes” the first website you
will see is the one made by us.
K Plus
Screens
Squid Game
Squid game theme website where users play and
go through two elimination rounds.
Squid Game
Squid game themed website where users play and go through two
elimination rounds. The first round being 'Green Light Red Light'
and the second one is 'Paper Candy'. This website has been made with
collective efforts of Bihan Saha
(Framing the event) , Rishita Shaw (Frontend Developer
& Framing the event) and the rest of the Prakriti Team as an
online event when classes were online.
Each user will get a card just like the one they receive in the game
post registering via google.
Round 1 “Green Light Red Light”
The player has to turn on the camera and he has to move his
head when the doll is not looking in order to move forward (distance
travelled is shown on the screen). After sometime when the doll
looks at the player, if the movement sensitivity meter reaches 100
then the user will die and he/she has to start all over again. The
player will get 3 chances and if the player tries any mischievous
activity that player will be labelled as a cheater.
Round 2 “Paper Candy” The
player has to cut out the given shape Heart, Crescent, Umbrella and
Star within the given time, once the paper is ready the player has
to upload the image on the website after which we will decide if the
player is ready to be promoted to the next round or not. If the user
is promoted to the next round then user is prompted to add his phone
number after which we add them to the Whatsapp group of next round.
Technologies used:
Frontend: HTML, CSS, Javascript
Backend: Django
Hosting: AWS
It took us about a month to test and then successfully deploy this
website, due to this the players faced no bugs/problems while
playing. The event was successful and saw a footfall of 300+ participants .
Squid
Game Screens
Treasures at Hogwarts
Treasures at Hogwarts is a treasure hunt game
where users have to find the hidden treasure by solving the riddles
and clues and find the location given to them.
Treasures at Hogwarts
Treasures at Hogwarts is an online-offline event, which has two
rounds which involves the website.This website has been made with
collective efforts of Bihan Saha
(Framing the event) , Rishita Shaw (Frontend, backend
& Framing the event) and the rest of the Prakriti Team.
First round: The team will
have to play Quidditch and grab the flying snitch, on clicking at
the moving snitch the user will get one point, one team has total of
3 attempts and the final score will be shown on the leader board.
Second round The players
will be given an image, they have to identify the location on our
campus, take a selfie at that exact location and upload it on the
website, from the backend we will verify the image and accept it or
reject it, if the picture is accepted then user gets another image
and if not then he/she will get the same image along with the reason
why their uploaded image was rejected.
Technologies used:
Frontend: HTML, CSS, Javascript
Backend: Django
Hosting: AWS
The whole website was made within 10 days from frontend to backend
to deployment. The event was successful and saw a footfall of 160+ participants .
Treasures at
Hogwarts Screens
Samvaad
Samvaad App brings you news from 50+
countries across 7 Categories from different sources. This is my
first project on React Native which i built from scratch.
Samvaad
Samvaad provides you with the latest news from all over the world in
7 different categories from different sources. You can get trending
news from here. This was my first React Native project which I made
from scratch. Learnt about how to pass props from parent to child
components and how to call parent functions from child. The backend
is made using Flask and python requests module calls NewsApi and
then sends the data to the frontend. Since NewsApi has a limit of
100 requests per day, try catch mechanism can serve around 1500
requests per day.
Things to do:
Caching mechanism to cache the news this will help the
backend to serve even more requests.
Technologies used
Frontend: React Native (Javascript)
Backend: Flask
Samvaad
Screens
UV Downloader
UV Downloader is a video downloader app which
allows users to download videos from various platforms like Youtube,
Facebook, Instagram, Twitter, etc.
UV
Downloader
UV stands for universal downloader. We all love to listen to music,
some play it using Spotify some use Youtube, but almost all the
music streaming platforms are filled with annoying ads and most of
the songs are not available for offline download. People want to
share some videos and media with our friends and family but they
prefer sharing the original video instead of a link, but this is not
possible for most of the platforms.
UV Downloader solves this problem by enabling users to download HD
videos and High quality audios at high speeds, users can download
media from websites like Facebook, Instagram, Youtube, Reddit and
many more. UV Downloader also provides a file system for users to
navigate through their files and downloads. Users can also browse
the web within the app and find the media they want to download.
The first version of this app was made using Javascript and
Context API.
The second version of this app was made using Javascript and
Redux Core.
The latest version of this app has Typescript enabled and
uses Redux Toolkit.
First
Version
The most difficult part of this project was finding the proper
library with compatible version, initially while building this (I
was using Javascript back then ) I faced a lot of bugs & errors,
almost to a point where I almost gave up. React Native Fetch Blob
may help you to download files via url but many times it fails and
sometimes even download does not even start, so it was not an
reliable option. Then I switched to React Native FS, and while
installing this library I again got a lot of build fails, but
eventually when this was ready to use, I found out that it’s the
most reliable library for downloading files from the internet, it
also has many options which enables the developer to build feature
rich applications moreover its free and open source. Now the problem
was how do I show that the download has started and its progress
(react-native-fs gives you the download progress asynchronously),
now the problem is I have to store and update this data from
somewhere. So as at that time I was familiar with context api (which
I will regret later). Now due to the frequent updation of the
download status, the downloading file component was flickering, and
when more downloads are added it started to flicker even more. So
now I knew that using context api is not a good idea. This was the
first version which was made using Javascript and Context API.<
Second
Version
Then I built a new branch and switched to redux, the code became
more simpler and there was no flickering even though 10 files were
getting downloaded at the same time. This was the second version of
the application where I was using Javascript and Redux Core.<
Latest
Version
I could have stopped here but I wanted to solve one more problem,
what youtube does is, it has audio and video (only the high quality
ones) as separate files, till now I was showing only the lower
quality video files (480p to 720p max) that have audio embedded in
them, but now I had to change this, I decided to introduce another
very important library to our application FFMPEG. What FFMPEG does
is, it merges the video and audio into a single output file whose
extension can chosen by the developer (I kept it to mp4 since it’s
the most widely used video file format). Now the challenge was how
to install FFMPEG because the documentation is not properly written,
and I spent around 2 days just to install FFMPEG min version.
Meanwhile I recently worked on Treklers passenger app which I made
from scratch in Typescript, so I knew how beneficial Typescript is
for this project. Then I rewrote the entire project in Typescript
and installed Redux Toolkit and after all of this was done. I
started working on Downloading the audio and video, merging them
together and then deleting the source files. Typescript really
helped here I faced no bugs while making this feature and thus the
third and the latest version of the app is ready, which is written
in Typescript and has Redux Toolkit for state management.
Things to do:
Better UI/UX
Add support to enable download from different websites
Technologies used
Frontend: React Native (Typescript)
Backend: Flask
UV
Downloader Screens
Buzzpost Blogging App
Buzzpost is a blogging app which allows users
to create their own blogs and share them with the world. It has all
the features that are in the website.
Buzzpost Blogging App
Buzzpost is a blogging app where users can post their blogs and
connect with each other.
The app has the following screen and features
Home screen
Login/Signup screen
Trending screen where the top 5 bloggers with highest blog
views will be shown and top 10 trending blogs.
Read blogs screen where you can search blogs and you can
sort the blogs by
Views
Likes
Blog length
Newer
Older
Search user screen where you can search for a user
Search blog screen where you can search for a blog
Feedback screen.
My Blogs screen.
Write a blog screen with rich text editor.
Profile screen.
My profile screen.
Edit profile screen.
Blogs that can be liked and commented upon.
Comments which have an option to be liked and replied.
Things to be done:
Making commenting feature.
Complete API integration.
Technologies used:
Frontend: React Native (Javascript)
Backend: Django
Hosting: Python Anywhere
Buzzpost Blogging
App Screens
Triunits
Triunits is a cryptocurrency trading app
which allows users to trade cryptocurrencies and earn money. It has
charts and graphs to show the current market status.
Triunits
Company: CapriconRole: Android DeveloperTriunits is a cryptocurrency trading
app which allows users to trade cryptocurrencies and earn money. It
has charts and graphs to show the current market status. The app is
currently on Google Play Store. The goal of a developer while making
this app is to keep the UI of the application minimal and easy to
use. I have worked on many screens and also developed several
screens from scratch. I also add the shimmering loading effect in
various parts of the application for better User Experience. I also
created a coin news API which scrapes data from the web, caches it
and sends it to the app.
Technologies used
Tricket Tricket is an innovative real-time
fantasy cricket game that lets you enjoy your favorite fantasy
sports without the need to create a team. Simply analyze the game
...
Tricket
Company: Helpen.InRole: Flutter DeveloperTricket is an innovative real-time
fantasy cricket game that lets you enjoy your favorite fantasy
sports without the need to create a team. Simply analyze the game,
project the score of the next SPELL (a set of 4 or 5 overs), and
join a Contest to compete against other players. You can play in
real-time with the live match, just be sure to record your
projections before the deadline (which is before the start of each
over). The closer your projections are to the actual scores of the
Spell of the live match, the more points you’ll earn and the higher
your chances of topping the leaderboard and winning cash prizes. And
the best part is that in just 15 minutes, you can play and get a
winning result!.
Technologies
used
Flutter
Dart
The app has crossed over 10k
downloads as of March 2023 on Google Play Store
Tricket
Screens
Treklers
Treklers is a Taxi Booking App that allows
users to book a cab and track the driver in real-time. It has
several options live location and emergency calling.
Treklers
Company: CapriconRole: Android DeveloperTreklers is a Taxi Booking App that
allows users to book a cab and track the driver in real-time. It has
several options live location and emergency calling. I built this
project from scratch using Typescript in React Native.
The app has over 50+ screens and is currently under development, it
is about to be released in the soon.
Technologies
used
React Native
Typescript
Treklers
Screens
No Attack
Strategically place chess pieces on a grid without attacks to
outlast your opponent in this turn-based, no-attack chessboard
game!
No Attack
The No Attack Game is a strategic chess-inspired game where
players take turns placing pieces on an m x n grid,
ensuring no two pieces can attack each other. The game is played
over three rounds, with different combinations of Kings, Knights,
Bishops, and Rooks. It features two board
types: Normal (standard grid) and Blocked (with
pre-defined squares where pieces cannot be placed).
No Attack Game Play
Gameplay 1Gameplay 2
Chess Moves
Strategically move your piece to land on the target block, or in
the reverse variant, avoid placing your piece on it to outsmart
your opponent!
Chess Moves
Chess Moves is a dynamic strategy game where players navigate chess pieces on a grid to achieve specific objectives. In the standard variant, the goal is to guide your piece to land on a designated target block while avoiding obstacles and planning strategic paths. The reverse variant challenges players to avoid placing their pieces on the target block, requiring careful moves to outwit opponents. The game tests spatial reasoning, foresight, and adaptability with endless possibilities for creative play.
Chess Moves Game Play
Gameplay 1Gameplay 2
Nims
A 3-round tile-tapping strategy game with varying layouts, rules,
and win conditions.
Nims
Nims is a turn-based strategic tile-tapping game designed for two players. The game is played over three rounds, with the objective of winning at least two rounds to claim victory in the match. The game combines pattern recognition, planning, and strategic moves based on specific rules and tile arrangements.
Gameplay Overview
Players interact with a set of tiles arranged in one of the following patterns:
Grid: Tiles are arranged in a rectangular or square layout.
Line: Tiles are aligned in a straight line.
Loop: Tiles are placed in a circular or loop-like pattern.
Piles: Tiles are grouped into separate piles.
During each turn, players must tap tiles according to the tapping rules for the round. The goal of each round depends on the win condition:
Normal Version: The player who taps the last tile wins the round.
Reverse Version: The player who taps the last tile loses the round.
Rules and Variations
Tapping Rules: Each round may include restrictions on the number of tiles a player can tap or specific tiles they are allowed to interact with based on the arrangement.
Tile Arrangement: The layout of the tiles (grid, line, loop, or piles) determines the strategic approach for each game round.
Win Condition: The win condition (Normal or Reverse) changes how players strategize to achieve or avoid tapping the last tile.
Round Structure
First Player Alternates: The player who goes first changes in each round to ensure fairness.
Strategic Moves: Players must plan their moves carefully, considering the current tile arrangement and tapping rules to outwit their opponent.
Winning a Round: A player wins a round by achieving the win condition for that round.
Match Objective
The match is played as a best-of-three. The player who wins two rounds is declared the overall winner. If a round ends prematurely due to a player being unable to make a legal move, the other player wins the round.
Nims combines strategic depth with simplicity, making it an engaging and competitive experience for players of all skill levels.
Nims Game Play
Gameplay 1Gameplay 2Gameplay 3
Clash of Colours
A turn-based strategy game where players color patterns under
variant-specific boundary rules until one can’t move.
Clash Of Colors
Clash of Colours is an exciting and strategic game for two players where each player must color a pattern with their respective colors. Players take turns coloring the pattern according to specific rules and constraints. The first player unable to color the pattern loses the game. The game requires careful planning, spatial reasoning, and foresight, making each move crucial to securing victory.
Gameplay Overview
The game involves a pattern with various cells or areas that players need to fill with their color. The arrangement of the pattern varies based on the game variant chosen. The players alternate turns, coloring different cells or regions while adhering to the constraints of the selected variation.
Pattern Filling: Players fill a pattern with their respective colors. The pattern can be anything from a grid, circle, or a custom design that players must color by following certain rules.
Two Players: Each player is assigned a specific color at the beginning of the game. They will only be allowed to color the pattern with their respective color during their turn.
Turn-Based Gameplay: Players alternate turns, filling cells or areas on the pattern. The game ends when one player cannot make a legal move and is unable to color a cell.
Variations and Rules
There are four different variations of rules for coloring the pattern, which add depth and complexity to the gameplay. These variations determine how players interact with the pattern and with each other’s colors.
Variation 1 - No Sharing Boundaries with the Opponent: Players can share boundaries with their own color but cannot share boundaries with the opponent’s color. This forces players to be more careful with placement to avoid blocking themselves.
Variation 2 - Sharing Boundaries with the Opponent: Players can share boundaries with the opponent’s color but cannot share boundaries with their own color. This variant encourages players to take calculated risks and make aggressive moves.
Variation 3 - No Boundary Sharing: Players cannot share boundaries with either their own or the opponent’s color. This forces players to think strategically about how to expand their territory without touching anyone else's color.
Variation 4 - Required Boundary with Previous Cell: Players must share a boundary with the cell they previously filled. This forces players to make a series of connected moves, requiring careful thought about their placement strategy.
Rules of the Game
The rules of the game are designed to ensure fairness and add strategic depth to each match.
Coloring the Pattern: Each player can color only their assigned cells with their respective color. The placement of each color is governed by the current variation.
Turn Limitations: Players are required to follow the rules of the variation when selecting a cell to color. Players can’t place their color on any cell that would violate the boundaries set by the variation.
Inability to Color: The game ends for a player if they are unable to color any more cells due to restrictions, resulting in a loss for that player.
Winning the Game
The objective of the game is to be the last player able to make a move and color a cell according to the variation’s rules. If a player is unable to make a legal move, they lose the game. The key to winning is strategic planning, anticipating the opponent’s moves, and preventing them from gaining access to important areas of the pattern.
Match Objective
The match is played as a best-of-three. The player who wins two rounds is declared the overall winner of the match. The first player who is unable to make a legal move in any round loses that round, and the opponent wins.
Clash of Colours combines simple mechanics with strategic depth, providing a competitive and engaging experience for players of all skill levels. The game encourages players to think ahead, adapt their strategies, and outmaneuver their opponent to secure a victory.
Clash of Colors Game Play
Gameplay 1Gameplay 2
Rearrange
Arrange tiles in order within grid constraints, solving sequential
puzzles by finding the correct placement.
Rearrange
Rearrange is a puzzle game where the player must arrange tiles in either increasing or decreasing order, following specific movement restrictions. This game tests the player's ability to think critically and logically within a grid-based environment.
Gameplay Overview
In Rearrange, the tiles are randomly placed within a grid, and the player must organize them in the correct order. Movement of tiles is restricted to the grid; players cannot jump tiles or move diagonally. The player must carefully slide the tiles into place while adhering to the movement constraints.
Rules and Variations
Tile Arrangement: The tiles are placed in random order within a grid, and the player must organize them in increasing or decreasing order based on the objective.
Movement Restrictions: Tiles can only be moved within the grid; no jumping or diagonal moves are allowed.
Answer Check: After placing a tile, the player checks the answer to see if it is correct. If incorrect, the player stays on the question and continues until the correct order is found.
Objective
The objective of Rearrange is to order the tiles correctly. If the player arranges the tiles in the correct order, they move on to the next level. The game continues until all the levels are completed or the player fails to place the tiles correctly within the given conditions.
Rearrange Game Play
Slot Turner
Turn slot items to match the target value and answer the question.
Slot Turner
Slot Turner is a game designed for single players, where players must turn items within a slot to match a specific target value. The game challenges players' problem-solving skills, spatial reasoning, and ability to visualize transformations.
Gameplay Overview
In Slot Turner, the player is presented with a slot containing several items. Each item can be rotated to a different state. The objective of the game is to turn the items in such a way that they align with the target value shown. The player interacts with each item by turning it to a specific angle or position according to the rules of the game.
Rules and Variations
Items in Slot: The slot contains items that must be turned to match a target value.
Turn Logic: Each item has distinct angles or positions it can be turned to, and the player must find the correct positioning for each item to match the target.
Level Progression: As the player progresses through levels, the difficulty increases with more complex patterns and additional rules for how the items can be turned.
Time Limit (Optional): Some variations may include a time limit for each turn, increasing the pressure to complete the puzzle quickly.
Objective
The objective is to match the arrangement of items in the slot with the target value. Once all items are correctly aligned, the player moves on to the next level. The game ends when the player either completes all the levels or fails to complete a level within the constraints (e.g., number of moves or time limit).
Slot Turner Game Play
Portfolio
Most recent work
Placement Management System
Placements are crucial for job aspirants, and so is placement management. In the
digital era, one can tremendously improve the efficiency and quality of tasks by
working out a strategy that involves the perfect concoction of harnessing the
best out of technology and human brains. When there are 180+ companies coming
for campus placements it is difficult to keep track of the status of the
company. Whenever a company comes to our campus for recruitment there are a set
of steps that are to be followed, but when the no. of companies become large
enough it becomes difficult to manage, moreover there should be proper
communication between the Placement Cell and the Placement Coordinators. When we
look closely on this problem we get to know placement coordination is mostly a
repetitive process and this process can be shifted from manual to semi-automatic
this will not only boost the productivity of the placement cell and the
coordinators as well but will also save time and energy that can be utilized to
work on different matters.
This Placement Management website helps to combat all of these problems, here is
a quick description of the project.
There are two types of accounts, one is for the Placement cell and the
other one is for the Placement Coordinators.
This is admin dashboard where you can see statistics of companies,
placement coordinators and tasks (that are assigned by the placement
cell to the coordinators)
This is download tab where the admin can download current database of
the companies, placement coordinators, tasks and point of contacts in
.csv format.
Here the admin can add a placement coordinator. Once a coordinator is
created the coordinator will receive notifications (when enabled) and
emails for the status of the assigned company.
Here the admin can add a company. On the right hand side there is a
section which will show the admin if the same company is already present
or not so that the admin can change the naming convention (Sometimes a
company comes to the campus twice).
Send notification tab, The admin can send push notifications to the
admin devices and placement coordinators who have their push
notifications enabled. There is also a section which shows the placement
coordinators who have not enabled (or disabled) their push
notifications.
List of companies tab, The admin can view all the details of all the
companies at once.
List of placement coordinators tab, the admin can view the details of
all the placement coordinators at once.
List of tasks tab, the admin can view list of all tasks at once.
Company details screen where
The admin or the coordinator can update the progress of the
company.
The admin can edit details of the company, the admin can also
add files like job description etc.
The admin can add or view Whatsapp group link with the company
officials
The admin can send notification to all allotted coordinators at
once.
The admin can add, edit or remove a task, where as the
coordinator can only change the status of the task.
The admin can manage the contact details of the Point of
contacts.
This is the dashboard of a placement coordinator, where he/she can view
Tasks Statistics and list of companies whose placement process is
ongoing and also the ones whose placement process is completed.
The coordinator can view all the allotted companies at once.
The coordinator can change its status from available to unavailable and
has to state a reason for it.
The coordinator can change its password.
Features under development
A calendar to show which process is scheduled on which day.
Students database on website.
Technologies used
Frontend: HTML, CSS, Javascript, Boostrap.
Backend: Django
Hosting: AWS EC2
Placement Management
System Screens
UV Downloader
UV stands for universal downloader. We all love to listen to music, some play it
using Spotify some use Youtube, but almost all the music streaming platforms are
filled with annoying ads and most of the songs are not available for offline
download. People want to share some videos and media with our friends and family
but they prefer sharing the original video instead of a link, but this is not
possible for most of the platforms.
UV Downloader solves this problem by enabling users to download HD videos and
High quality audios at high speeds, users can download media from websites like
Facebook, Instagram, Youtube, Reddit and many more. UV Downloader also provides
a file system for users to navigate through their files and downloads. Users can
also browse the web within the app and find the media they want to download.
The first version of this app was made using Javascript and Context API.
The second version of this app was made using Javascript and Redux Core.
The latest version of this app has Typescript enabled and uses Redux
Toolkit.
First
Version
The most difficult part of this project was finding the proper library with
compatible version, initially while building this (I was using Javascript back
then ) I faced a lot of bugs & errors, almost to a point where I almost gave up.
React Native Fetch Blob may help you to download files via url but many times it
fails and sometimes even download does not even start, so it was not an reliable
option. Then I switched to React Native FS, and while installing this library I
again got a lot of build fails, but eventually when this was ready to use, I
found out that it’s the most reliable library for downloading files from the
internet, it also has many options which enables the developer to build feature
rich applications moreover its free and open source. Now the problem was how do
I show that the download has started and its progress (react-native-fs gives you
the download progress asynchronously), now the problem is I have to store and
update this data from somewhere. So as at that time I was familiar with context
api (which I will regret later). Now due to the frequent updation of the
download status, the downloading file component was flickering, and when more
downloads are added it started to flicker even more. So now I knew that using
context api is not a good idea. This was the first version which was made using
Javascript and Context API.< Second
Version
Then I built a new branch and switched to redux, the code became more
simpler and there was no flickering even though 10 files were getting
downloaded at the same time. This was the second version of the application
where I was using Javascript and Redux Core.< Latest
Version
I could have stopped here but I wanted to solve one more problem, what
youtube does is, it has audio and video (only the high quality ones) as
separate files, till now I was showing only the lower quality video
files (480p to 720p max) that have audio embedded in them, but now I had
to change this, I decided to introduce another very important library to
our application FFMPEG. What FFMPEG does is, it merges the video and
audio into a single output file whose extension can chosen by the
developer (I kept it to mp4 since it’s the most widely used video file
format). Now the challenge was how to install FFMPEG because the
documentation is not properly written, and I spent around 2 days just to
install FFMPEG min version. Meanwhile I recently worked on Treklers
passenger app which I made from scratch in Typescript, so I knew how
beneficial Typescript is for this project. Then I rewrote the entire
project in Typescript and installed Redux Toolkit and after all of this
was done. I started working on Downloading the audio and video, merging
them together and then deleting the source files. Typescript really
helped here I faced no bugs while making this feature and thus the third
and the latest version of the app is ready, which is written in
Typescript and has Redux Toolkit for state management.
Things to do:
Better UI/UX
Add support to enable download from different websites
Technologies used
Frontend: React Native (Typescript)
Backend: Flask
UV
Downloader Screens
Treklers
Company: CapriconRole: Android
DeveloperTreklers is a Taxi Booking App that allows users to
book a cab and track the driver in real-time. It has several options live
location and emergency calling. I built this project from scratch using
Typescript in React Native.
The app has over 50+ screens and is currently under development, it is about to
be released in the soon.
Technologies used
React Native
Typescript
Treklers Screens
Placement Management System
Managing hassle-free
placements
Made to keep track of the placement process, by ensuring proper
communication between the placement coordinators and placement
cell.
UV Downloader
Download YouTube Videos
UV Downloader is a video downloader app which allows users to
download videos from various platforms like Youtube, Facebook,
Instagram, Twitter, etc.
Treklers
Booking rides made easy
Treklers is a Taxi Booking App that allows users to book a cab
and track the driver in real-time. It has several options live
location and emergency calling.