What have you built? Create a developer portfolio with DevPort. Sign Up

Popular Developers

The most visited developers on DevPort.

JM Miguel

San Pedro Laguna, PH

Backend/Web Developer


A project management tool focuses on meetings and agenda

Surreal Facts

The World's #1 source for mind-blowing surreal facts. Discover thousands of interesting and shocking facts about animals, history, celebrities, technology, and more. Features: +Daily Updates - Yes we update many times a day! +Save as Favorite +Share on Facebook, Twitter, Instagram, Tumblr, SMS, Email, and many more.


Partyphile is the easiest way to discover and get access to the best parties, events and nightlife hotspots in your city Partyphile allows you to: • Book tables from the top clubs, bars, lounges, grills and karaokes in your city • Book tables using your prepaid cellphone load or postpaid bill • See the parties and events that you like based on your preferred venues and music • See where your friends are going to party • Get an all access pass to all the parties in town via the VIP Membership • Get on the guest list of the top parties in your city in one tap • Easily put your friends on the guest list with you • Enter venues easily without having an ID and have your Party ID scanned

Mladen Stojkovic

Serbia, Nis

Self taught web developer following FreeCodeCamp's online coding curriculum

Haleigh Harper

Washington DC

Full Stack Web Developer


Are you unsatisfied with current dating app options? Its pretty awkward to have to describe yourself and then wait around for matches, huh? And pretty discouraging when you don't match. And pretty intimidating thinking about potentially dating a complete stranger lurking behind their online profile. If only you could ensure that you were only dating decent humans who compatible with you -- decided not by some fancy algorithm but by those you know you best -- your friends!! What if we could make online dating human again? TickleTush does just that by making the most fun part of dating -- SET UPS!-- more accessible. How it works: Sign up for the app Take a look at all your current friends a. Make recommended set ups! Remember your cute friend from high school? He would be a great match for your co-worker -- so TickleTush 'em! You know they would be get along swimmingly so introduce them to each other with a single click. If they both accept your recommendation, they'll be connected instantly. Nice work! Take a look at your friends' friends a. Your kickball teammate has some hot pals. See someone you like? Ask her to make the introductions! She can give the dirt on his background (confirming he is not a total creep) and recommend you to her friend and let the magic begin. The gist: the best part of dating is getting set up. Your friends get to talk you up to their friends/friends-of-friends and know better than you do who could be a good fit out there. And you can pay it forward! Currently taken but don't want to miss out on the fun? GOOD NEWS! You can still use TickleTush to be a pal and set up all your friends. Who doesn't love playing matchmaker?! See our user stories on Trello here: https://trello.com/b/GTvAkQrT/tickletush

The Brunchinator

The Brunchinator uses the Yelp API to display randomly generated brunch spots wherever a user specifies, either by zip code or city/state. A user can view Yelp information about each restaurant, clicking 'FIND ME BRUNCH' to view even more options and 'Save to Favorites' to keep track of favorite places. This app is similar to the 'shake' feature from UrbanSpoon, but is enhanced with information from Yelp.

Mayank Nagwanshi

vadodara, gujarat

That is not a bug, its a feature.


Popular-movies More features: Allow users to view and play trailers ( either in the youtube app or a web browser). Allow users to read reviews of a selected movie. Also allow users to mark a movie as a favorite in the details view by tapping a button. This is for a local movies collection that is maintained on device and does not require an API request*. Modified the existing sorting criteria for the main view to include an additional pivot to show favorites collection. Modified the existing layouts to fully utilize the tablet real estate.


Sunshine Watchface for Android Wearable Synchronizes weather information from OpenWeatherMap on Android Phones and Tablets. The data is then pushed to the Watch face to display the weather on the wearable. Credits to OpenWeatherMap for weather data


XYZ-Reader In this project, I have redesigned an app to follow the Material Design guidelines and translate a set of static design mocks to a living and breathing app. In this project: Using the fundamentals of Android design. Applying Material Design guidelines to an mobile application. Separating an interface into surfaces. Effective use of transitions and motion.

Rushy Panchal

New Jersey

I love to develop to change the world.


form-validate.js jQuery-driven form validation form-validate.js is a simple script to validate forms (as the name implies). To use it, simply use the jQuery selector with the .validate() method: $("#myForm").validate(); This will set the the onsubmit handler for the form. This means that whenever the form is submitted, the data will be validated. If the data is not valid, it will not submit the form. In addition, it will alert the user by adding a CSS class to the specific input. It is the job of the client to define these classes. The validator can also set a change-based handler for each input. Configuration The validation tool can be configured with up to six options: Option Description Type Default Value errorClass The CSS class to apply when an error occurs string "error" successClass The CSS class to apply when the input is valid string "success" onchange jQuery events to use as bindings array bindings validators Mapping of input types to RegEx validators object validators onsuccess A function to call when an element has a successful validation function null onerror A function to call when an element fails validation function null Default Validators Input Type Regular Expression Validator Description text .+ One or more characters textarea .+ One or more characters email .+\@.+\..+ email in the form of email@domain.tld Default jQuery bindings These are the jQuery bindings for each element. They are called whenever the associated event occurs for that element. To see the full list of bindings, check out the jQuery Events page. Binding Name Description change Triggered whenever the input element is changed keyup Called when a key is released paste Executed when the user pastes into the input element input Triggered when input is entered into the element blur Called once the element loses focus onsuccess and onerror handlers These two handlers are used to trigger user-defined functions when certain events occur. The functions are only called when the onsubmit event is triggered --- any of the onchange, jQuery-driven events do not affect these handlers. The onsuccess handler is called whenever an element is successfully validated. For example, when the user presses the "Submit" button, the validator iterates through all of the form elements. If an element is validated successfully during this iteration, it will call the handler, with the first argument being the DOM element. Knowing this, a potential onsuccess handler could be: function mySuccessHandler(element) { $(element).hide(); } Of course, any CSS-related handlers can be incorporated directly into the successClass and errorClass configuration. Similarly, an onerror handler: function myErrorHandler(element) { $(element).css("color", "red"); // again, it's easier to use the successClass and errorClass configuration options } Example usage HTML <script type = "text/javascript" src = "https://code.jquery.com/jquery-2.1.3.min.js"></script> <form id = "my-awesome-form"> <div> <input type = "text" name = "userame" placeholder = "Username" /> <span class = "error-text">Please enter your username!</span> </div> <div> <input type = "text" name = "recipient" placeholder = "Recipient" /> <span class = "error-text">Please enter a recipient username!</span> </div> <div> <textarea name = "message" rows = "6" placeholder = "Message" class = "input-validate"></textarea> <span class = "error-text">No message entered :(!</span> </div> <input type = "submit" value = "Send" /> </form> JavaScript $("#my-awesome-form").validate(); // default options $("#my-awesome-form").validate({ // set a few handlers instead onerror: function (element) { console.log(element.id + " is invalid!"); }, onsuccess: function (element) { console.log(element.id + " is valid!"); } }) CSS input ~ .error-text, .input-validate ~ .error-text { color: red; display: none; } input.success, .input-validate.success { border-color: green; } input.error, .input-validate.error { border-color: red; } input.error ~ .error-text, .input-validate.error ~ .error-text { display: initial; } SASS/SCSS $color-form-error: red; $color-form-success: green; input, .input-validate { & ~ .error-text { color: $color-form-error; display: none; } &.success { border-color: $color-form-success; } &.error { border-color: $color-form-error; & ~ .error-text { display: initial; } } }


deployme An automated tool to deploy untracked files to servers (such as images) through the use of SFTP. Installation npm The Node-package-manager (npm) is the recommended way to install deployme. To install via npm, run npm install deployme -g. The -g parameter specifies that the package should be installed globally, which is recommended for nearly every use case. In addition, there are a few other varieties to installing via npm: # install through this GitHub repository npm install panchr/deployme -g # Install directly through GitHub npm install https://github.com/panchr/node-deployme.git -g git To install via git, run these commands in your terminal of choice: git clone https://github.com/panchr/node-deployme.git cd node-deployme Now, you can directly access the CLI (Command Line Interface) by using ./bin/cli. Again, I highly recommend using npm instead. Configuration The CLI tool uses the default configuration file, .deploy-config. To generate a standard configuration file, run deployme init. This will generate the configuration file in the current directory. Note: deployme will search for a .deploy-config file in any of the parent directories of the current working directory. So, it is possible to run the tool in any subdirectory of a project. The configuration options are stored as standard JSON. name description type default value host The host name of the server String "localhost" port Port to connect to the server with int 22 username The username to connect with String "root" password The password of the above user String "" local An object of local configuration Object {} local.root The local root of the files to sync String "." local.directories The local directories to sync Array [] local.files The local files to sync (not supported yet) Array [] remote An object of remote configuration Object {} remote.root The remote root to sync to String "/" For example, here is a sample configuration file: { "host": "myserver.io", "port": 22, "username": "panchr", "password": "v3rys3cure", "local": { "root": "static", "directories": ["images", "icons"], "files": ["myfavicon.ico", "secure.js"] }, "remote": { "root": "/var/www/site" } } Usage deployme comes with a few useful commands: init reset help diff sync local remote init This is the initialization script. To use it, run deployme init. It will walk you through the setup of the main configuration file, .deploy-config. reset Reset is very similar to init. In fact, it provides the same functionality but allows you to override previous options. It is invoked via deployme reset. help To get a list of commands and what they do, use deployme help. diff To see what the files that need to be synced, run deployme diff. sync Finally, deployme sync will calculate the required changes to be synced and then upload the appropriate files to the remote server. local deployme local provides a series of subcommands that allows you to configure the local settings of the syncer: Subcommand Argument Description Example root path Set the local root path to the file path deployme local root /static add path Add a local path to be synced deployme local add /test add glob pattern Add matching local paths to be synced deployme local add *.css remove path Remove a local path from being synced deployme local remove mystyle.css remove glob pattern Remove matching local paths from being synced deployme local remove test/* remote deployme remote only provides one command so far, but more will be added soon. Each subcommand allows you to configure the remote settings of the syncer: Subcommand Argument Description Example root filepath Set the remote root path to "filepath" deployme remote root /var/www/static


Focus AI This repository contains all of my work (other than readings) for my Senior Focus Honors project. I am researching gameplaying AI and how they interact with human players. Specifically, I want to learn how to create an AI that can play a gamelike a regular human does. After looking into numerous Machine Learning algorithms and suitable games, I decided to use the Dynamic Scripting algorithm to create an AI that plays Checkers. By April of 2015, I hope to have created an AI for Checkers using this algorithm. In addition, I wish to create a website on which people can play against the AI (and against themselves), and then rate the perceived "humanness" level of their opponent. This will allow me to collect data on how the AI is faring so that I can improve upon it if necessary. The final project is located on my personal website, https://panchr.me/focus. My final paper for my first semester research is also on my personal website, https://panchr.me/papers/focus.pdf. Note: most of my code and development work is the dev branch. I will merge it into the master branch every week, so the weekly tag will contain the latest development work. Important Pages Overall Progress Overall Notes Summary Project Timeline Guiding Questions Final Paper



Just learn and do

Appointment app

Features Automatic assignment of affiliates to appointments based on their most recent location Calendar view Agenda view Multiple roles Google calendar export Email notifications Appointment releasment for affiliates to grab Log viewer Work hours for affiliates Used technologies and tools PHP [Laravel] Google API jQuery HTML/Sass Laravel Forge

Social Platform

Features Users Friendship Live messaging Posts (public/private) Comments (with images and deleting) Share (social and via email) Honor post (public) Light a candle for a post (for registered users only) Tagging Search Register/Login via social accounts Admin blocking of users Statistics for admin Used technologies and tools PHP [Laravel] jQuery HTML/Sass Laravel Forge

Apartments Doca - unfinished by client

Features Custom cms Paypal payment and processing Booking with price calculation for different parts of the season Export of guest list Used technologies and tools PHP [Laravel] Google API Paypal express jQuery HTML/Sass Laravel Forge

Atif Imam

Sushant Lok1 ,Gurgaon

The best thing about a boolean is even if you are wrong, you are only off by a bit. (Anonymous)


Encrypto is a simple chat room script in python. Encrypto uses AES encryption for secured data transfer over public network. It consist of two scripts a server and a client. Run the server.py in a system so that the client client.py can connect from remote systems with the correct password. You can connect multiple client.py to one single server from remote systems for a group chat. You can edit setting.conf and change password, host, port and view mode. # SERVER.PY USAGE $ python server.py # NEURON.PY USAGE $ python client.py "host_ip" "port" "password" "nick_name" # #


tic-tac-toe Things needed python3 tkinter and some other basic modules How to use it ? start the server : python3 server.py python3 client.py contributors: Aakanksha Kapoor Atif Imam Ekta Tiwari Tanya Ghumman


A python based Apllication for finding nearest available business faciltiy like cafe , restaurant , hospital etc from a given node. It also searches for farthest available business facility . Queries are to be made in the following ways : python nearest_node.py nearest_node_tagged 246512355 cafe It will then return the cafe nearest to node number 246512355, which is a node in Union Square in New York python nearest_node.py nearest_node_tagged "870 broadway" cafe (Windows) python nearest_node.py nearest_node_tagged $'870 broadway' cafe (Mac or Linux) Prints and displays graphically the cafe that's nearest any point at 870 Broadway in New York uses street address and street name combination python nearest_node.py farthest_node_tagged "10010, new york" cafe Prints and displays graphically the cafe that's farthest away from any point at the 10010 zip code. Uses zip code/postal code and city combination. python nearest_node.py nearest_node_tagged starbucks hospital Prints the hospital that's nearest to a one word location such as Starbucks. python nearest_node.py farthest_node_tagged kfc cafe Prints and displays graphically the cafe that's farthest away from a one word location such as kfc. In your command line, IF YOU KNOW A NODE NUMBER TO PROCESS, use any of the following commands: python nearest_node.py nearest_node_tagged 246512355 cafe (Prints and displays graphically the cafe nearest to node 246512355 You can enter your own OpenStreetmap node number instead of 246512355. cafe can be replaced with another Openstreetmap amenity such as bar, restaurant, school, etc.) python nearest_node.py farthest_node_tagged 246512355 cafe (Prints and displays graphically the cafe farthest to node 246512355 You can enter your own OpenStreetmap node number instead of 246512355. cafe can be replaced with another Openstreetmap amenity such as bar, restaurant, school, etc.) Requirements : python2

Kim Desrosiers

Saguenay, Québec, Canada

Me in some words: Developer, Learn, Bike, Music and fun!

Real-time Dashboard

Real-time dashboard - GDPL This is a event dashboard providing real-time data such elevation, speed, distance to travel and the position of the event's runners. The dashboard includes various informations about time, speed and distance, a map to show the position of the main vehicules and a chart with an elevation graphique for the next 5 kilometers. Used technologies Languages HTML Javascript CSS PHP Libraries Leaflet Jquery JqPlot Bootstrap

Itinerary simulator - Cruise the Saint Lawrence Association

Itinerary simulator - Cruise the Saint Lawrence Association This is a project that I did during my internship at the CGQ. It allowed me to learn some basic concepts of the geomatics. Used technologies Languages Mostly HTML/Javascript/CSS and some PHP for backend requests. Libraries OpenLayers GeoExt ExtJs

Real-time race viewer and custom OpenLayers control

Real-time race viewer and custom OpenLayers control This project involves a race viewer to view the races in real-time. Also, I did a custom OpenLayers control that allowed races managers to give some security informations to runners. The real-time informations was provided by the SNALT platform of the CGQ. Used technologies Languages HTML Javascript CSS PHP (Backend requests) Libraries OpenLayers 3 Jquery Proj4js

Isaiah Coe

Baltimore, Maryland

Web Development Student

Ninja Tech Deals

We have the best tech deals on the net!

German Shepherd Foundation

German Shepherds are the most popular dogs in 2017!

Healthy Foods

Healthy foods is the #1 meal prep company in 2017!

Patrick Joseph Gorospe


Mobile and Game Applications Developer

Dragon Tap by DBS

Experience the thrill and energy of DBS Marina Regatta on your mobile! Simply form a team of 4 friends - top teams get a chance to win exciting prizes including tablets, smart watches and fitness trackers! Download Dragon Tap now and start tapping away! The team play competition ends 18 May 2014, so hurry! For more details of exciting prizes, head over to http://www.dbsmarinaregatta.com.

Fairy Tiles

A Unity 3D Game for iOS and Android I developed for Crazy Monkey Studios. The goal of the game is to clear the field of characters. You have to make groups of 5 or more characters of the same color. Once the characters are grouped, you score points, and the grouped characters vanish, making more room for new maneuvers.

Surreal Facts

The World's #1 source for mind-blowing surreal facts. Discover thousands of interesting and shocking facts about animals, history, celebrities, technology, and more. Features: +Daily Updates - Yes we update many times a day! +Save as Favorite +Share on Facebook, Twitter, Instagram, Tumblr, SMS, Email, and many more.