Internships are great opportunities to gain valuable experience that will help you through your entire career. They are very helpful in gaining skills and knowledge, making new contacts and building confidence.
At Take Off Labs, we take responsibility to teach interns all they need to know, with a focus on the practical aspects which are usually harder to gain in university settings. We have a standardized process through which our interns gain knowledge in our core technologies: Ruby on Rails and iOS app development. However, we are flexible enough to adapt pace to each individual person.
The end goal of each internship is to build a useful project. To this end, we will start by defining and specifying an internship project, defining phases and deadlines. Here is an example of the steps one might take to learn Ruby on Rails while building a web invoicing system for small companies.
Your Project – Getting Started with Web Development
Your Getting Started project requires you to build an Invoicing System for small firms. The app should work as follows:
- companies create a user account via email & password
- they can add customers
- they can create invoices
- an invoice is a collection of items (products and / or services)
- invoice example: http://webapplayers.com/inspinia_admin-v2.2/invoice.html
- an invoice needs to have two states:
- draft – this document has not yet been issued, it is a work in progress, it does not have a number (more on this below)
- issued – this document has fiscal value, it has a registry number and can be sent to customers
- the invoice number is particularly important:
- it is of the form Number / Date
- issued invoices must have sequential numbers: 1, 2, 3, …
- each year the number is reset and starts from 1 again
- firms should be able to print the invoice to PDF
- firms should be able to mark an invoice as paid or partially paid by entering an amount
- firms should be able to issue a receipt for the paid amount
- we should build a dashboard where firms can track the money invoiced
- per month
- per year
- forecast the total year revenue
- firms should be able to email the invoice to customers
- the email should contain the invoice PDF
- the email should contain a link to Pay the invoice
- customers should follow the link and pay the invoice in full via credit card
To build this project, you will follow these steps:
- get familiar with the technology stack we use at Take Off Labs following selected tutorials
- prepare a document outlining the requirements of the app which includes:
- mockups of the user interface and design elements you will use
- an entity relation diagram of the tables you need
- a development plan (which components you implement in which order)
- a test plan
- implement, test and document the app
1. Technology Stack Overview (1 week)
2. Rails and iOS Starter Kit (2 weeks)
In the next two weeks you will install the Take Off Labs Rails and iOS Starter Kit (http://www.ioslabs.com/products/ios-rails-starter-kit) and get familiar with Rails routes, Rails MVC pattern, and the Ruby programming language. You will study Ruby and Ruby on Rails tutorials and will prepare a demo of your work so far.
3. Work on your project (2.5 months)
You will prepare the development plan for your project. The development plan will include mockups and a detailed plan with 2 week milestones. You will then be following the development plan and demo your progress every 2 weeks.