Giter Site home page Giter Site logo

xchange's Introduction

Xchange

A simple foreign currency exchange calculator

Xchange is a small PHP web application which allows you to convert from one specified currency to another. It can be a nice tool for people that deal with multiple foreign currencies.

The currency-conversion process depends highly on the relative exchange rates between the two currencies. Different entities (banks, forex bureaus, online forex services, etc...) have each got their own relative exchange rates between the various currencies they deal with. Because of this, Xchange has been designed to be installed on your own (or company's) server in order to take advantage of custom exchange rates. This means that you can specify your own exchange rates, for the different currencies, once the application has been installed on your server.

This application has been built using plain (custom) PHP, no frameworks.

The project is meant to give a deeper understanding of how foreign currencies work behind-the-scenes. It is also meant to test the OOP concepts of PHP.

Installation

  • Download the Xchange source code
  • Copy the code to your web server's Document Root
  • Open a web browser
  • Go to http://your-server/Xchange/
  • Proceed to the Xchange Web Installer
  • Complete the installation process (the installation guide will help you)
  • Enjoy Xchange :)

License

This application has been released under the MIT License. Feel free to modify or distribute the code as you wish.

Development Principle

Progressive Enhancement (Start with a Niche)

To-Do

[Done] Setup base (initial) code
[Done] Un-Design a single HTML page as MVP*
[] Add simple styling to page
[Done] Bootstrap the application dependencies
[] Build the database schema
[] Write the App Models (classes)
[] Write the Calculator system*
[] Write the Web installer*
[] Implement server security strategies for PHP
[Done] Upload to Github @fordarnold
[] Publish blog post about OOPHP


What Have I Learnt About Object-Oriented PHP?

Fundamental Concepts

  • Object-Oriented Programming uses real-world objects, and their interactions to model complex software systems.
  • An Object in OOP is anything, tangible or intangible, existing in the world.
  • A Class is a prototype/model of a real-world Object, as understood by a computer.
  • Just like a real-world object, a class can have both properties and behaviour.
  • Properties are the different characteristics of an Object. For example, a "Person" (object) can have green eye-colour, 1m height, 70kg weight (properties).
  • Behaviour refers to the different actions that can be done by an Object. In a Class, behaviours are represented as Functions.

Encapsulation

  • A Namespace contains (encapsulates) Classes.
  • A Class contains (encapsulates) properties and functions.
  • A Namespace can be represented as a folder (directory) in your project containing related PHP Class files.

Inheritence

  • A Class can inherit (re-use) both the properties and functions of another Class in an application.
  • Public properties and functions can be executed by any other Class in the application.
  • Private properties and functions can only be inherited by.
  • Protected properties and functions cannot be inherited by any other Class.

xchange's People

Contributors

fordarnold avatar

Watchers

James Cloos avatar  avatar

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.