About
An aspiring junior web developer with a background in 3D animation. A word I always say is "wow" so my goal is to make cool things that can make others go "wow".
I have a passionate interest in all things techie without being nerdy. Can repair phones, build my own computers, an avid computer gamer and love trying to figure out weird and wacky problems.
I have just finished General Assembly's web development course. I have been extremely amused over everything I've had the opportunity to learn, explore and lay my hands on (I've already lost count of amount of times I've suddenly wowed in the middle of class)! Check out the stuff I've made and feel free to hit me up!
Skills:
- HTML
- CSS
- Javascript
- jQuery
- React
- Bootstrap
- Git
Project 0: Tic Tac Toe
My very first coding project. It was a first of a lot of things for me, from combining my newly learnt skills together to using my first css plugin called Animate CSS.
Live Demo ||
View Code
Features:
- Turn Count
- Score Count
- Can't reclick the square if it's already been clicked, an animation will play.
- Can only click the 'Play Again' button once game is finished.
Improvements:
- Refactoring the code so the values for the x and o matches aren’t hard coded.
- Let the users choose their own player tokens.
- Adding in an AI.
Project 1: Alumni Network
My first rails application built using a CRUD system. It’s basically an Alumni network where current and past students can share their work with each other and give each other advice.
Live Demo ||
View Code
Features:
- Sign Up/Login with validations (cannot access the site without signing up/logging in)
- Viewing all student works in a gallery
- Viewing user profiles (current students and alumni) through their works, can’t directly access the student’s profiles without going through their works.
- Users can edit and delete their own works but cannot edit or delete other users’ works.
- No users can delete their own profiles, can only edit. (Includes resetting their passwords).
- Ability to favourite other student’s works, any works they’ve favourited would appear in their own profile as their favourited works. Once it’s been favourited their can’t favourite it again unless it’s been unfavourited.
- Image uploads with cloudinary.
Improvements:
- Favourite/Unfavourite toggle button. And a notification telling the user they’ve favourited/unfavourited the piece of work.
- Background-tileable pattern isn’t showing on Heroku so have to fix that.
- Would love to add user chat feature or means of communication probably using action cable.
- Student work categories and tags so can implement a search feature.
- Job board for students and introduce employers in there so they can look at student works and contact students for potential employment opportunities.
- Probably an admin account to control the user accounts and permissions.
- More work on the CSS
Project 2: bShare
This is probably the most exciting project by far, it’s a group project where I worked with three other members of my class: Gurdeep, Meena and Ricky.
Live Demo ||
View Code
Features:
- Implemented user permissions on three levels: admin, users and people who aren’t registered
- Users able to see all of our bike stands and their locations on a map using geolocation.
- Able to see all of our bikes and whether they are available to rent or not.
- Able to rent a bike, return a bike and pay with a credit card through Stripe, cost is calculated for them based on the number of hours they’ve rented the bike for.
- Time/date validations for renting and returning bikes (i.e. can’t rent a bike in the past).
- We have a bike inventory that tracks which station the bikes are rented and returned to.
- Users have access to their rental history which is a record of all the bikes that they’ve rented in the past.
- Users able to edit their profile including name, email and password.
Improvements:
- At the moment if the user presses the close button on the payments page, it will still register as them having returned the bike. Will probably need a redirect and cancel return if the payment doesn’t go through successfully.
- Integrate with React.
- Make the site responsive and accessible.
- Wanted to implement a bike live tracking feature so being able to see the bike’s locations on a map. Which would possibly mean changing our models around to centre around the bike. We didn’t centre our models and relationships around the bike because we didn’t have a bike or anything else that we could pull data from.
- Feature for users to report damaged bikes/bikes needing repairs.
Project 3: 3D Environment
Environmental Simulation Done in THREE.js. I wanted very much to apply some of my existing skills to what I'm doing now. But through some research I've discovered that others would prefer to import models from exisiting 3D applications I took on the challenge to try to 'model' with code. The result is this procedurally generated environment using purely code.
Live Demo ||
View Code
Features:
- Low Poly Environment generated from primitives
- Ground made from a sphere rotating on the x-axis, textured with a tileable texture and a bump map
- Rocks were randomly generated in clusters of 1-3 rocks, set at random angles and placed randomly on sphere (required some trigonometry).
- Trees were built in a similar way, 4 variations of trees models, in an array, logic would pick a sample from the array and plot them out. Needed to use lat long to plot them out.
- Clouds were generated with similar logic.
- Sky changes from morning to night and vice versa.
- Mountain created from cylinder, with logic to move it's vertices in random angles to create an irregular form.
- Three point lighting method to simulate real world outdoor lighting.
Improvements:
- Make the lighting change as the sky changes from day to night.
- Apply more advanced logic to the generation of assets. i.e. trees in a cluster, follow a path etc
- Needed to do more mathematics and trigonometry to get more features working.
- Add a hero character/object and make them controllable using mouse/keyboard.
- Set hero character on an animation loop.
- Set collision for the obstacles (trees and rocks).
- Add more animation and moving objects.
- Create a bigger environment to explore by generating terrains.
- Experiment with more advanced texturing, shading techniques and create custom materials.
- Some sort of game, maybe hero shoots at the obstacles? Score? Backend?.