The Internship

since September 2016


Project maintained by gabydi106 Hosted on GitHub Pages — Theme by mattgraham

Gaby's Internship

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.

Day 1: ERP next and Frappe

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.

How to install 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:

Commands I used/learned today:

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

Day 2: ERPnext and Frappe

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.",

Introduction to ERPnext Module Development

Making a new App

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

Setting up the Site

bench new-site [siteName]
bench new-site library

Installing app

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

Creating Roles

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

DocType

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.

Commands I used/learned today:

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)

Day 3: Python and WordPress

Sept 28, 2016


Learning Python

Task # 1: if-else statements

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")

Task #2: read and calculate

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)

Task #3: division

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

Exploring WordPress

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.

Day 4 and 5:

Sept 29-30, 2016


What is ERP and Why is it important?

Among other things, ERPNext can:

Other open source ERPs:

Test Phase

  1. Read the Manual
  2. Create a free account at https://erpnext.com (the easiest way to experiment).
  3. Create your first Customer, Supplier and Item. Add a few more so you get familiar with them.
  4. Create Customer Groups, Item Groups, Warehouses, Supplier Groups, so that you can classify your Items.
  5. Complete a standard sales cycle - Lead > Opportunity > Quotation > Sales Order > Delivery Note > Sales Invoice > Payment (Journal Entry)
  6. Complete a standard purchase cycle - Material Request > Purchase Order > Purchase Receipt > Payment (Journal Entry).
  7. Complete a manufacturing cycle (if applicable) - BOM > Production Planning Tool > Production Order > Material Issue
  8. Replicate a real life scenario into the system.
  9. Create custom fields, print formats etc as required.

Week 2

Oct 03, 2016


What I plan to do and achieve this week