Coder Social home page Coder Social 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

jim3692 doesn’t have any public repositories yet.

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.