what we built

Words by Olivier Pichon

In our previous blog post, we announced as a software platform of connection is closing down. Whilst I am saddened by the news, as many members of the Milaana family are, I think there are also many reasons to be grateful for the wonderful journey we all had, building Milaana.

In some ways, we are what we achieve: facio ergo sum. And during two years, with scare resources but a lot of passion we built, – a lot. We built a tool to be used by Community organisations (Charities, Social Enterprises & Startups) seeking skilled volunteers but also by Students seeking Internships. We created the necessary foundations to connect those two worlds, ensuring the quality of the advertised community oriented projects as well as the quality of students profiles.

As a software Engineer who took part into this work, I would like to describe the features we created and to share this as a resource for anyone interested in creating their own platform of connection.

Key Features

  • Milaana for Community Organisations

Organisations are asked to sign up and provide some basic information which are used to pre-populate their profile.
1: Sign Up

Once the sign up process is done, some more information like the Organisation Summary and Community Benefit are asked to finish the profile.
2: Org Profile private

This profile is validated by a Milaana administrator. It then becomes accessible to everyone, on the public side of the website in the section ‘Organisations‘.
3: Org Profile Public

An Organisation is given a 30 days trial plan for Milaana upon sign up. We built in a payment gateway integration to accept payments and therefore upgrade the Organisation subscription:
4: Payments

Milaana’s internships were targeted to offer real community benefits. Organisations were asked to detail what we have called their ‘Projects‘: a bigger picture than only just a position description. It includes for instance the Goals and the Key Deliverables. Once Organisations are happy with their drafted projects and its preview, they can publish them, just like we publish a blog post.

The project is then live on the public side of Milaana under the category ‘Projects‘.
5: Projects public side

On the private side of the application, an organisation can now create the different positions which will make this project a reality.
6: Positions private

These positions also have a status (open, filled, elapsed, inactive). Based on this status the position is advertised on Milaana’s homepage:
7: Positions public

When a student applies for a given role, automatic emails notifications are sent to the organisations. They can then review the application on their private (‘My Milaana‘) space:

8: Applications

For a given application, the traditional resume and cover letters of the students are available. There is also a tool to send messages directly to the students as well as attached files if needed: this ensures that the whole recruitment workflow and exchanges is kept in one place.
9: Messaging

If the organisation is willing to proceed with a given applicant, they can accept him/her for the role. This has two main consequences: the position will cease to be advertised on the public side of the website and an Internship is created in the system. Rules apply to make sure only one profile can be selected for a given position.

10: Internship

Milaana didn’t only focus on connecting Organisations and Students. It also made sure they both have the necessary materials to make the internship awesome by providing some content also called ‘resources‘. Once the Internship is created, this content like the ‘On Boarding Check-List‘, the ‘Mid-way review form‘ become available. You can find all of these resources HERE

Finally, the organisation and the student can add their exchanges and attachments to the Internship to keep all the material about this one in the same, shared place.

internship resources milaana

  • Milaana for Students and Internship Seekers.

The first time students or internship seekers come to, they find a list of community oriented projects as well as their associated positions. The internship is either to be done remotely or at a given address. When this address is provided to Milaana, the position is automatically geolocated. This allows the student to filter positions around a given radius:
11: Positions filter

If a student likes a given position, they can access its details:
12: Positions details

Before applying though, the student will need to sign up to Milaana and create their profile. It’s worth noticing an Integration to Mailchimp has been done, enabling Milaana to send newsletters with valuable content to its registered students.
13: Student profile creation

Now that the student has completed their profile, it becomes easy to apply for many positions as the form is pre-filled with the student profile information:
14: Students applying

A student can at any time review their applications in the private (‘My Milaana‘) section of the app. They will be able to see if their application has been read for instance.

15: Application states

The student could also send some more information to the Organisation through the built in messaging service:


When an application is accepted, an Internship is created within Milaana, enabling the student to access valuable resources for their internships (the same as the ones provided to the Organisations: ‘On Boarding Check-List‘, the ‘Mid-way review form‘…)

  • Milaana for the Administrator.

We also built an administrator side of the website where dashboards with key metrics are available: Total number of Organisations, Students


Most of the data stored in the application can also be exported in CSV files by an Administrator:
18: CSV Export

Finally all the plan’s prices and duration can be modified by an administrator:
19: Plan modification

And that dear reader, is the essence of’s functionality as a software platform!

Technical details

Here are some technical specs about the software:

  • Languages used: Ruby, JavaScript, CoffeeScript, Scss, CSS, HTML.
  • Framework / main libraries used: Ruby on Rails, jQuery, Handlebars, Braintree, Geocoder, CarrierWave, MiniMagick, Httparty…
  • Web Server: Nginx.
  • Application Server: Unicorn.
  • Database: PostgreSQL.
  • Hosted on Amazon Web Services, EC2 Medium Instance. Assets are stored on Amazon S3. Domain managed on Amazon Route 53.

Express your interest!

Mailchimp Integration, Email Notifications, Payments, Data Export, Geolocation, Messaging systems, Internship resources… We built a lot inside

If you are interested into running your own version of Milaana or if you would like to enquire about the source code, please fill out our contact form, we would love to support your initiative!

One thought on “ what we built

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s