Skip to main content

Application Template

This is just a suggested template, feel free to add and remove sections as appropriate. Be brief, don’t write a large essay!

The Proposal

This is not a definitive guide, but will guide you in starting your first draft.

Title

State the name of the project idea you are working on. This helps us to classify your proposed work plan.

About Me

What relevant experience have you got, including university, work and hobby activities?

  1. Include a copy of your GitHub profile avatar icon to help us identify you easier.
  2. The image should be no more than 48px by 48px, the same size as seen in issue and pull request comments.

It's important for us to understand your motivations for applying. This section will help.

Executive Summary

No more than a page outlining what your proposal is about, the challenges it will overcome and the benefits to the Talawa user and / or GitHub community.

Background

What exists already? What is the identified need? What can you reuse, what needs to he replaced?

Example: Palisadoes Foo has already got support for HTTP client requests, but this does not work well with OAuth-based services. The main interface for requests can be reused, but this project proposes to replace the backend code with a modular approach based on Palisadoes Bar.

Design and Description of Work

This helps to provide context for the mentors to consider.

  1. Create a brief list of things you will do / create, in some rough chronological order.
  2. Show which bits are essential, and which are optional.
  3. Highlight what is new, what are modifications, and how your work fits into the existing architecture.

Consider the example below

Example:

These are high level examples that could guide you:

  1. Investigate REST client libraries
  2. Develop JavaScript functions for browsing files (optional)
  3. Integrate with Palisadoes Foo’s request system (essential)

It is not sufficient to just provide a list of general tasks. Priority will be given to proposals that:

  1. Evaluate the pros and cons of alternative solutions
  2. Illustrate key concerns and concepts of the idea with pseudocode, diagrams or other means
  3. Consider the long term implications of the proposal such as:
    1. The degree of disruption to be implemented
    2. The hidden costs in terms of money, latency, complexity, intuitiveness, support, obsolescence mitigation and more
    3. The maturity of suggested libraries to be used
  4. When in doubt, make sure your design answers these basic questions for all the stakeholders and technical solutions:
    1. Who?
    2. When?
    3. Where?
    4. Why?
    5. What? - Very important
    6. How? - Very, very important

This will address most of the typical concerns of the mentor reviewing your proposal.

Results for the Palisadoes Community

Describe the benefit of your work to Palisadoes $Project users and developers. Explain the legacy of your work after you finish.

Deliverables and Scheduling

Make sure to include these as part of your proposal:

  1. Milestones,
  2. Components,
  3. Documentation,
  4. Tests.

Not too detailed, but some milestones and checkpoints. Rough estimates per work item (weeks/days). Remember to leave time for slack and bug fixing!

Other Commitments

Let us know when you won't be available:

  1. Exams
  2. Part-time work
  3. Holidays
  4. Lectures.

Include any other causes of absence we should know about.

Community Engagement

In particular with Palisadoes $Project, including project mailing lists, wikis, issue trackers, test systems.

This should show a rough understanding of working with open source communities. You should be engaged with the rest of the community both before coding start (e.g. to develop this proposal) and during the project.

Include any planned user testing, prototypes, code review.

Layout

We prefer a consistent style in the proposal. This makes it easier to read. These tips will be helpful.

Headings

Try to segment your thoughts into areas with headings. Having long sequences of paragraphs can dissuade the reader from a favorable review as they may feel you are taking too long to get to the main point.

This will also be helpful in creating a table of contents.

Table of Contents

Add a table of contents. Google Docs’ has a feature to create one.

Using the table of contents feature will also make the formatting of your titles and headings more consistent.

Lists

These tips will be helpful in arranging your thoughts.

  1. It’s always best to add add some introductory text after each title rather than going straight into bullets or lists.
  2. Similarly, after numbered lists or bullets have some type of concluding sentence.
  3. Whenever possible use numbered lists versus bullets. It makes referencing your points easier.
  4. If your lists have more than one sub-list, you should consider splitting them up into sections each with their own sub-titles to make your points more clearly organized.

This approach will help you create a more consistent and professional result.

Margins

Make your margins consistent. Don't have images extend beyond the edges of your text.

Images

Whenever you are proposing a new way of doing something, consider adding an image or schematic diagram. This will:

  1. assist your explanations
  2. be important when describing UI/UX ideas.

Consider using images in code sections if you feel it will help to clarify the outcome.

Spelling and Grammar

There are lots of tools to help with this. Use them.