Button imageMy Projects

Website
eminakkoc.com(Personal web site)

I have tried kind of a different approach while developing my personal website. Unlike from traditional portfolio sites, which are developed similar to resumé documents, I created a 3d scene (rendered with ThreeJS) which replaces the main router of a web app project.

All routes (server side rendering approach is used with NextJS) which are present on the website are represented in the scene by a building. Instead of clicking a link on a traditional web page, users click those buildings (or building names from menu) to travel to the location of that building and display the server side rendered page.

Users can also walk and look around freely and enjoy the scene with user controls and keyboard shortcuts if they haven’t clicked any building and redirected to any page yet.

Pages are implemented responsive and tested 3d render performances in mobile devices.

Creating the scene:

Buildings

All 3d models of buildings are drawn in blender.

Texture

All pixel art textures are drawn at aseprite.

Building with applied texture

Pixel art textures are applied via UV Mapping.
Shadow is applied to building model via vertex painting.
becomes
becomes

Texture baking

After vertex painting, I baked the resulting shadowed texture onto the building model and make it ready for exporting.

Exporting

All building, assets and lights are exported to threeJS editor after completing the earlier mentioned operations.

Tech Stack

logo image
react
logo image
nextJS
logo image
javascript
logo image
typescript
logo image
threejs
logo image
css
logo image
tailwind
logo image
html
logo image
git

Tools

logo image
vscode
logo image
blender
logo image
aseprite
logo image
pixaki
logo image
inkscape
logo image
gimp
logo image
jira
logo image
netlify

Resipise is a food curation app which enables you to design your own meals with using ingredients provided by our database.

Resipise ingredient database mainly uses food data retrieved from FDC, so users can track nutrient info of their ingredients while designing their own meals.

Features of resipise:

My cookbook

You can display and organize your meals by moving into sections in Dashboard page. Each meal is represented by a card, which you can:
  • Copy meal links by clicking share button.
  • Move meal into new sections.
  • Rename/Edit/Delete meal.

My meal details

You can also display nutrient values of a meal by clicking the pan button from the meal card.

Recipe

Create a meal recipe

You can create your own recipes by selecting ingredients and creating steps by selecting appliances or just by adding recipe text. (This meal will automatically added to your dashboard page after submitting.)

Recipe Preview

Preview recipes

You can preview your own or shared recipes by following their shared links or just by clicking the meal card from Dashboard page.
  • Display ingredients.
  • Display recipe steps.
  • Display meal nutrient values.

Schedule

Time period table

You can plan your daily food intake by adding your meals or common foods (which is already present in resipise db with the data derived from FDC database). You can also:
  • Add notes to time periods.
  • Add note for the day.
  • Create a meal just to add into schedule without adding to your dashboard.
  • Add a meal by modifying its ingredients.
  • Display total food nutrient intake for that day.

Limits

You can also define limits and apply them to any time period to track your nutrient intakes

Shopping list

You can create or share shopping lists from this page. (Any operation made in a shared shopping list instantly updates the same shopping list data in all shared users.) Clicking a shopping list redirects you to the shopping list details page where you can:
  • Add/Update/Delete new entries to your shopping list by defining "name", "category", "details", "where to buy" attributes.
  • You can update the state of your entries by clicking the check button or swiping left/right in mobile mode.
  • Filter displayed entries.

User profile settings

You can arrange your preferences and user related setting from this page. Settings in profile page are:
  • Update your user name and profile photo.
  • Friend related operations such as displaying incoming friend requests, friend requests made by you and display the list of your current friends.
  • Create daily nutrient limits (For example: Daily energy intake limits in kcal as 1800 kcal etc.).
  • Apply your defined nutrient limits in any defined periods in your schedule page.
  • Add foods by adding its nutrient values manually or request AI assistance (This feature is added to enable users to add foods which are not present in current resipise db, for example a specific brand of yoghurt etc.).

Tech Stack

logo image
solidJS
logo image
javascript
logo image
typescript
logo image
nodeJS
logo image
html
logo image
css
logo image
css-modules
logo image
jest
logo image
surrealdb
logo image
vite
logo image
firebase functions
logo image
google cloud platform
logo image
pusher
logo image
docker
logo image
git

Tools

logo image
vscode
logo image
postman
logo image
aseprite
logo image
pixaki
logo image
inkscape
logo image
gimp
logo image
jira
logo image
netlify