since September 2016
Gaby is a senior at McGill University studying Computer Science and International Development Studies. This September she started an internship and is working with the IT Team of C y l i x T e c h nologies, Inc. It is one of the market leaders, as well as one of the fastest growing companies in the Security and Surveillance Technology Industry in the Philippines.
Sept 26, 2016
During my internship, I intend to put into practice the skills and knowledge I have acquired from school in a real-life working environment. I also intend to form the habit of documenting my progress through this blog.
My goal at the end of this internship is to gain new experiences and insights and to broaden my horizons in terms of my professional career.
I will primarily be working with the ERPnext and Frappe frameworks and developing in Python.
ERPNext is a free and open-source integrated Enterprise Resource Planning (ERP) software for the web developed by Frappé Technologies Pvt. Ltd. and is built on MariaDB database system using a Python based server-side framework.
Frappé is the Rapid Application Development Framework in Python & JS used to build ERPNext.
To run ERPnext I had to download Oracle's VirtualBox in order to run Ubuntu Linux on a virtual machine which now lives inside my laptop.
I then mounted the ERPnext iso image file into the virtual machine.
When VirtualBox Boots, login using user: frappe and password: frappe
Afterwards, input the followings command in order to start Frappe Bench. This step initializes an instance of ERPnext and pushes it onto the local server website.
cd frappe-bench
bench start
Then, on the HOST machine (mine is Windows 10), use the browser and go to:
and login using:
ifconfig | grep HWaddr --> Linux, specifically returns MAC address
ipconfig --> Windows
ping google.com --> to check there is an active internet connection
ping facebook.com
Ctrl + C --> to exit a particular command in terminal/cmdline
Sept 27, 2016
Now that I have a working ERPNext instance, I can play around with it and start developing modules.
I started out by generating random data to fill my sample database. For this I created my own mock up company, "Intergalactic Robotics, Inc.",
To make a new application, go to your bench folder and run, bench new-app {app_name}
and fill in details about the application. This will create a boilerplate application for you.
bench new-app [appName]
bench new-app library_management
bench new-site [siteName]
bench new-site library
bench use [siteName] // to set the default site
bench --site [siteName] install-app [appName]
bench --site library_management install-app library
After installing the app, it is ready to be run.
bench start
In order to fully customize and create my app, I had to switch on developer mode to "1". This setting is located in
sites/library/sites_config.json
Alternatively, one can also execute:
bench --site [siteName] set-config developer_mode 1
bench --site library set-config developer_mode 1
Before creating Models, I created Roles so that I can set permissions on the Model. There are two Roles I created for my Library Management System:
To create a new Role, go to:
Setup > Users > Role > New
After creating the Roles, I created the DocTypes.
To create a new DocType, go to:
Developer > Documents > Doctype > New
My new DocTypes
are:
Each DocType
was assigned fields
, specific naming conventions, and search fields so it can become searchable.
bench --reinstall // this clears the database to give the app a fresh reset
bench --site [siteName] uninstall-app [appName]
vi [fileName]
to enter insert mode: `i` or `a`, to save and exit: `ESC` + wq
ls -a // to check if swap (.swp) files or other hidden files are in the folder
rm [fileName] // remove the file (delete)
Sept 28, 2016
Given an integer, , perform the following conditional actions:
Sample: Input = 3, Output = Weird
#!/bin/python
import sys
N = int(raw_input().strip())
if (N % 2 == 0):
if (N > 20) or (N > 1) and (N < 5):
print("Not Weird")
elif (N > 5) and (N < 21):
print("Weird")
else:
print("Weird")
Read two integers from STDIN
and print three lines where:
The first line contains the sum of the two numbers. The second line contains the difference of the two numbers (first - second). The third line contains the product of the two numbers.
A = input()
B = input()
print(A+B)
print(A-B)
print(A*B)
Read two integers and print two lines. The first line should contain integer division, //
. The second line should contain float division, /
.
from __future__ import division # ! THIS LINE IS IMPORTANT !
A=input()
B=input()
print(A//B) # integer division
print(A/B) # float division
WordPress is web software that is used to create websites, blogs, or apps. Since the core software of WordPress is built by hundreds of community volunteers, it allows users to transform their sites into anything they can imagine using the thousands of plugins and themes available.
Sept 29-30, 2016
Oct 03, 2016