Development
Contents
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.