Development

From XcelData Wiki
Jump to: navigation, search

XcelData Project Development - Draft 1

Here is a list of all known technologies and frameworks being used by the XcelData cloud ecosystem.

Server

  • We are using CENTOS 6 LINUX on older servers. All new servers are using CENTOS 7.
  • We use MariaDB for our database (MySQL alternative)
  • We use PHP for everything server-side (NodeJS or ElephantPHP will be used for some future things needing real-time events)
  • We use APACHE for the PHP sites, NGINX for serving static files from our content delivery network (cdn.xceldata.com)
  • All cloud services are running on AWS EC2 instances. (Exceptions are the root domain Xceldata.com and xpawn's website)
  • SSH is the primary method of communication with the servers and SCP is used for file transfers.
  • We use CERTBOT to obtain SSL Certificates.

General Development

  • We write all "tests" in PHP to maximize re-usability
  • We are not currently using any NoSQL databases at the moment.
  • We are not currently using a load balancer for any project.
  • We use GIT for source control and currently use GITHUB as the master repo.
  • All dates stored in the database are stored in UTC. Please remember to convert to and from UTC and the User's Local Timezone for both storing records and querying ranges.
  • HTML, CSS and Javascript are handled a little bit differently between all of the different products. This is mainly because newer projects are using more modern technologies.
    • In older projects we do traditional MVC where there is a public html folder, a private php folder/api, and public css and javascript.
    • In newer projects we are using MIX (from laravel) to compile VUE.JS templates into optimized single-file exports

Server Side Development

  • We use Klien Router for handling server-side page navigation
  • We use MeekroDB for handling all database abstractions
  • We use CARBON to handle date/time/timezone conversion
  • The server is setup to use UTF8 so be sure to convert when necessary.
  • We use NPM and COMPOSER to manage packages.
  • We are not doing any server-side VUE rendering (mainly because we can't compile and lint the server-side renders)

Client Side Development

  • We use VUE Router for handling client-side page navigation
  • We use MOMENT.JS to handle date/time/timezone conversion
  • We use SCSS for pre-processing CSS in newer projects.
  • We use Bootstrap 2 & 3 on older projects and target Bootstrap 4 in newer projects.
  • Projects compiled with MIX use ESLINT to ensure it compiles and is up to standards.