Hello, world!
I'm a project manager turned full-stack software developer and I have won three hackathons!
I placed TOP 10 at EthToronto in August 2022 with ZK-NFT: Prove you own an NFT anonymously!
ZK-NFT4C is a cloud-based application that leverages predictive analytics to get actionable insights for optimizing overbookings by hotel sales managers. It relies on historical occupancy data, current & future reservations, variable room costs and walk costs to forecast the optimal rate of overbooking.
Built with Django, Splunk, HTML/CSS, and Ajax
Watch the live presentation - Announcing the winners
function getParameterByName(name, url) {
if (!url) url = window.location.href;
name = name.replace(/[\[\]]/g, "\\$&");
var regex = new RegExp("[?&]" + name + "(=([^]*)|&|#|$)"),
results = regex.exec(url);
if (!results) return null;
if (!results[2]) return '';
return decodeURIComponent(results[2].replace(/\+/g, " "));
}
function httpGet(theUrl) {
var xmlHttp = new XMLHttpRequest();
xmlHttp.open("GET", theUrl, false); // false for synchronous request
xmlHttp.send(null);
return xmlHttp.responseText;
}
A meet-up app that triangulates multiple zip codes to return several local businesses that are closest to the centerpoint.
Built with NodeJS, Express, and Yelp
app.post('/zip', function(req, res, next){
if (!req.body) return res.sendStatus(400)
var inputs = req.body.zip
var zipCodes = tools.cleanZip(inputs)
let promises = tools.promisify(zipCodes);
Promise.all(promises)
.then(response =>{
let coords = tools.get_coords(response)
return coords
})
.then(coord =>{
let center = tools.get_center(coord)
return center
})
.then(center =>{
let term = req.body.term
tools.getYelp(center, term, 3)
})
.catch(next)
var matrix = tools.get_matrix()
console.log(matrix)
res.render('index.hbs', {'matrix':matrix})
});
app.listen(port, function(){
console.log('listening on port ' + port)
});
Built for shelters to centralizes lost animal information. Features leveled user privileges and easy-to-use data manipulation.
Built with Python, MongoDB, and Tornado Web Framework
# Dog Functions
def find_dog_by_id(_id):
return dogs.find_one({"_id": _id})
def find_dog_by_name(name):
return dogs.find_one({"name": name})
def find_all_dogs():
return dogs.find({})
def find_deleted_dogs():
return dogs.find({'delete': {'$ne': False} })
def find_all_public_dogs():
return dogs.find({"delete":False})
def find_many_dogs(data):
return dogs.find({"$and": data})
# older version
# return dogs.find({ "$or": data})
def add_new_dog(data):
return dogs.insert_one(data)
def update_dog_by_id(_id, data):
return dogs.update_one({"_id":_id}, {'$set': data })
def delete_dog_by_id(_id):
return dogs.remove({"_id": _id})
def delete_many_dogs_by_date_range(start, stop):
requests = [UpdateMany({'date_found':{'$gte': start, '$lt': stop}}, {'$set':{'delete':datetime.today()}})]
dogs.bulk_write(requests)
dogs_list = dogs.find({'date_found':{'$gte': start, '$lt': stop}})
return dogs_list
def find_shelter_by_id(_id):
return shelters.find_one({"_id": _id})
def find_shelter_by_name(name):
return shelters.find_one({"name": name})
def find_all_shelters():
return shelters.find({})
def add_new_shelter(data):
return shelters.insert_one(data)
def update_shelter_by_id(_id, data):
return shelters.update_one({"_id":_id}, {'$set': data })
def delete_shelter_by_id(_id):
return shelters.remove({"_id": _id})
A top-down operational web application streamlining meditation class registrations, ceremonial duties, and volunteers.
Built with Python, Django, GraphQL, PostgreSQL, Unit Tests, and Mailgun.
from graphene import relay, ObjectType, Schema
from graphene_django import DjangoObjectType
from graphene_django.filter import DjangoFilterConnectionField
class VolunteerNode(DjangoObjectType):
class Meta:
model = Volunteer
only_fields = ('sector_name', 'user')
filter_fields = {
'sector_name': ['exact', 'icontains', 'istartswith'],
}
interfaces = (relay.Node, )
class Query(ObjectType):
all_volunteers = DjangoFilterConnectionField(VolunteerNode)
class PrivateGraphQLView(LoginRequiredMixin, GraphQLView):
pass
write_schema = Schema(query=Query, mutation=Mutation)
read_schema = Schema(query=Query)