it/docs

Starting a Project

Guidelines and general tips for starting a project

Last updated:

No two projects are the same. However, one can still apply lessons learned from other projects to make the process smoother.

Here are some general tips that can help you get started:

Identify the project's purpose and goals.

Maybe you want to build a system for sending in receipt reports. Goals for such a project might include:

  • Reducing manual labour for both the reporter and treasurer
  • Give the treasurer a clear overview of expenses, both per committee and in total
  • Ensure legitimacy of reports by tying them to user accounts

Discuss the project's scope and requirements.

Determine what features and functionalities are necessary for the project. Consider the following aspects:

  • User authentication and authorization
  • Data storage and retrieval
  • Reporting and analytics
  • Security measures

Plan out features

A good idea is to discuss features with the people who might use the system. Given the previous example of a receipt reporting system you might want to talk to the Chapter treasurer, the committee's treasurers and people who buy stuff for the Chapter (SpritMästare, PubMästare et cetera)

Some features might include:

  • Receipt scanning and automatic data extraction
  • Automatic categorization of expenses
  • Integration with existing accounting software
  • Mobile friendly website for easy reporting on the go

Get building!

How you choose to do this is more or less up to you. But some key things to keep in mind are:

  • You are not going to be in the Chapter forever. Built systems that last and are easy to maintain.
  • Avoid the use of bleeding edge / obscure technologies. They make it difficult for other people to contribute to the project.
  • Use a modular architecture that allows for easy expansion and modification.
  • Prioritize code readability and maintainability.

Always remember that building should be fun and rewarding. If you dislike a language, don't use it!

Most of us are going to end up in software adjacent jobs, so building systems that are actually used in production is a valuable experience and a great way to learn more about software development.

On this page