GSoC-2019 Application for AutolabJS Organization

Organization Application

Why does your org want to participate in Google Summer of Code?
We are participating in GSoC to attract and diversify our developer community. AutolabJS project has been conceived at BITS, Pilani - Goa Campus, India. Hence, the project has historically attracted all its developers from the institute. This institute is also in the top-10 participating institutes in GSoC. Hence the quality of participating developers is good. We wish to attract diverse set of developers from around the world so that the project can grow to next level in open source ecosystem. We also hope that by having geographically diverse developer base, we can increase the chances of adopting the software at different educational institutions. Another advantage of new developers is the infusion of new ideas into the project. We hope that the incoming developers can bring in fresh ideas and challenge the existing ideas to improve the software.

How many potential mentors have agreed to mentor this year?
1-5

How will you keep mentors engaged with their students?
We have selected highly motivated and skilled mentors for participating in GSoC. The mentors are expert developers who also demonstrated their mentoring skills while grooming the new developers for the AutolabJS software. The selected mentors have also shown their commitment to the AutolabJS software by supporting the use of the software in different programming courses. We shall have a scheduled mentor-student interactions thrice a week. These scheduled interactions are to make sure that the mentors help the students progress towards achieving the project goals. The project goals are converted into issues and milestones on the GitHub repository. We shall track the mentor engagement by considering the mentor-student interactions across GitHub issues and pull requests.

How will you help your students stay on schedule to complete their projects?
Our first strategy to achieve this goal is to motivate the students to write realistic proposals and to select students who have the skill set to implement the project proposals. All the mentors shall guide the interested students in creating realistic proposals. All our project ideas have one primary mentor and one backup mentor. If the students are not able to make progress due to issues with primary mentor, we shall bring in the backup mentor. We also plan to have an agile development process with iterations of two week duration. All the student proposal shall have deliverables with deadlines. The mentors and students together shall convert the deliverables from proposal into GitHub issues, milestones and pull requests. These specific items shall be tracked by the organisational administrators to help the students stay on schedule.

How will you get your students involved in your community during GSoC?
So far we have used slack channels, GitHub repo and private mails for project communication. We have setup dedicated, public chat rooms for communicating with the GSoC students. One of the ways a student can lose motivation is when (s)he encounters a difficult technical problem and does not receive enough support from the mentors / developer community. We plan to tackle the scenario by motivating developers to be timely in response to all the communications from the student participants. Any pending logistics / technical issues shall be resolved by the organisational administrator on a weekly basis. Apart from these two, the participating students shall also be invited to have design and pair programming sessions with the mentors. This is to help transfer the existing project knowledge to the incoming participants. The student ideas also get discussed during these joint sessions.

How will you keep students involved with your community after GSoC?
Our primary motivation for participating in GSoC is to attract and retain new developers. We shall consider student applicants with strong inclination and demonstrated commitment to open source technologies. Ours being an educational software, we shall also encourage student applicants who deeply care about computer science education. We shall take all due care in giving positive and productive experience to all the student participants before and during GSoC. We have created GSoC ideas in specific project areas. We shall also encourage the student participants to acquire deep skill in their chosen project area towards becoming in-community experts in their chosen areas. The inherent motivation of the selected candidates coupled with the positive GSoC experience should help the student participants continue as core developers after GSoC.

Has your org been accepted as a mentor org in Google Summer of Code before?
No

Which years did your org participate in GSoC?
None

For each year your organization has participated, counts of successful and total students:
Not Applicable

If your org has applied for GSoC before but not been accepted, select the years:
None

If you are a new organization to GSoC, is there a Google employee or previously participating organization who will vouch for you? If so, please enter their name, contact email, and relationship to your organization. (optional)
None

What year was your project started?
2015

Where does your source code live?
https://github.com/AutolabJS/AutolabJS

Anything else we should know (optional)?
The software has been used in eight different Computer Science courses at BITS, Pilani - KK Birla Goa Campus, India in the last four years. In the process, nearly 2300 students have used the software to perform more than 100,000 online code evaluations. Further development of this software can make it easy to use for in-house evaluation of programming assignments and projects for academic institutions.

Organization Profile

Tagline
Auto evaluation software for programming projects and assignments.

Short Description
AutolabJS is an auto evaluation software for programming projects and assignments. AutolabJS follows microservices architectural principles and integrates git based workflows.

Long Description
AutolabJS is a lab automation software developed for programming courses. Our goal is to make learning of programming and software development a collaborative social activity. The AutolabJS software was initially developed to support different kinds of software assignments. We support evaluation of assignments in programming courses such as: Object Oriented Programming, Data Structures and Algorithms, Programming Languages and Compilers. AutolabJS puts in a uniform evaluation framework for all kinds of software assignments. AutolabJS also supports C, C++, Python and Java programming languages. A complete feature list of AutolabJS is available.

AutolabJS software is partly inspired by similar evaluation software named Autolab developed under the leadership of Prof. David R. O’Hallaron from Carnegie Mellon University. The project goals of both the teams are the same, but the approach taken towards the realisation of the goals is different. Where possible, AutolabJS team actively reuses the existing open source components such as GitLab to provide collaboration facilities. We are also more inclined towards providing pure evaluation service instead of a full blown course management system. Our view is that ultimately AutolabJS would be integrated with Moodle course management system. The architecture of AutolabJS is based on microservices principles. We are also in the process of creating a new architectural foundations for the project to scale up the system to a maximum of 5000 concurrent users. We intend to integrate the DevOps principles and practices into the AutolabJS software development process. This is an exciting time to participate in the project and make an impact. AutolabJS has been under active development for the last two years. The development team uses well known and in-demand technologies such as JavaScript, Node.js, Docker and Ansible. We follow well-known open source practices and are a welcoming community.

Primary Open Source License
GNU General Public License version 3.0 (GPL-3.0)

Organization Category
end_user_applications

Technology Tags
node.js, java script, docker, ansible, microservices

Topic Tags
auto evaluation, microservices, devops, cs education, testing

Ideas List
https://autolabjs.github.io/gsoc

Application Instructions
Important points to remember:

  1. Project ideas are listed in the descending order of utility to fulfilling the project goals.
  2. Please select a proposal that matches your implementation skills.
  3. We expect top notch code quality.
  4. Please obtain regular feedback from project mentors on your draft proposals.

For more details, please see the online version of advice on creating a strong proposal.

Proposal Tags:
devops integration, modular load balancer, execution node cluster, architectural improvements, own proposal

Chat
https://gitter.im/AutolabJS/gsoc

Mailing List

Contact Email
prasad DOT talasila AT gmail DOT com