Giter Site home page Giter Site logo

Hi there πŸ‘‹

  • 🌱 I’m currently learning

    • OpenShift
    • CCNAv7
  • πŸ’¬ Ask me about

    • Docker
    • Linux
    • Node.js
    • React.js
    • MikroTik
    • Salesforce Apex
  • πŸ“« Reach me @ [email protected]

  • πŸš€ Some details about my projects

    DISCLAIMER: None of the projects are currently live as I am working on configuring a new server cluster.

    It started as a school project. The requirement was to develop a simple online game using MySQL, PHP and HTML. However, me and my team wanted to go beyond those limits. We wanted to develop a Monopoly clone that would be inspired by the life in our college.

    The game runs on a WebGL build of Unity3D and it also uses UniRx, UniTask and a custom Socket.io client based on NativeWebSocket. UniRx helped to keep the code as minimal as possible and UniTask helped with threading issues we had due to the single threaded nature of Web Assembly. The Socket.io client was something I had to develop as all the implementations that we found were either faulty or closed source. Adding to that, I also had to override Unity's native cookie handling as it occasionally refused to send the required cookies to the server.

    The server side of the game is built on Express.js/Socket.io and it uses a MongoDB database. We chose MongoDB because having each game in a separate document allowed us to have very simple queries. However, that does not imply that we hadn't any challenges. Authenticating Socket.io connections using Express's sessions was harder than expected. But, thanks to some npm packages and some code magic with Rx.js, everything synced perfectly.

    But besides all the difficulties we made it in less than a month.

    This is a hobby project that is still under construction. It will be a monorepo for the whole College Resources project, which currently consists of college-resources/api and college-resources/web.

    • college-resources/api is our GraphQL API and it is based on Express.js and Apollo Server. For user authentication, it uses JWT tokens that are generated by Auth0. Its data is stored in a MongoDB database. This repo is about to get archived as we are trying to restructure the College Resources project.

      This API was my first opportunity to design a Node.js based web-app. A lot of mistakes were made, starting from the database choice which is not only slow compared to other DBMS, but it also lacks the flexibility that SQL provides for queries. The new GraphQL API will be based on Nest.js and it will use a PostgreSQL database instead.

    • college-resources/web is the Next/React + Redux client of the project. Once again, the server is based on Express. Express is responsible for the sessions and the Auth0 interactions, as it handles both Password Login and the Authorization Flow (with a little help from Passport.js).

      Express also acts a proxy for the API. This decision was made in order to keep the API tokens away from the end users, and better protect them against XSS attacks. All tokens are stored in the session store and get injected to the API requests.

    Another school project. It is a Dominoes game that is limited to MySQL, PHP and HTML. As claimed in the requirements, we were not allowed to use external libraries and/or frameworks. So, I had to develop my own component framework. It supports lazy loading, props, and component swapping. Since there is no toolchain, all the component files need to be registered in a JSON file and there is no special syntax for the templates. Everything is done using special data attributes on div tags.

jim3692's Projects

2d-game-engine icon 2d-game-engine

A 2D Game engine built with only native Java libraries. Part of a tutorial series @ http://vanZeben.ca/java/2d_game_dev

8-queens icon 8-queens

Implementation of 8 Queens Problem using RxJS

apex-dml-mocking icon apex-dml-mocking

DML mocking, CRUD mocking, dependency injection framework for Salesforce.com (SFDC) using Apex

apx-package-manager icon apx-package-manager

apx is the Vanilla OS package manager. It’s meant to be simple to use, but also powerful with support to installing packages from multiple sources without altering the root filesystem.

arch-novnc icon arch-novnc

Docker container running ArchLinux accessible through novnc in a browser

array-query icon array-query

Provides an interface to pull objects out of an array with minimal code. Useful for Backbone collections and similar scenarios. Backbone and node.js

bento icon bento

🍱 The minimalist, elegant and hackable startpage.

cors icon cors

Node.js CORS middleware

dockery icon dockery

Dockery is a Gtk3+ based GUI for managing docker images & containers written in Vala

doh-docker icon doh-docker

Docker Compose stack for DoH deployment with AdGuard Home

glide icon glide

A dependency-free JavaScript ES6 slider and carousel. It’s lightweight, flexible and fast. Designed to slide. No less, no more

icedos icon icedos

A Coool NixOS configuration, based on my needs. Uses Hyprland by default.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.