<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://wiki.bathcs.com/index.php?action=history&amp;feed=atom&amp;title=BOSS%2FDesign</id>
	<title>BOSS/Design - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.bathcs.com/index.php?action=history&amp;feed=atom&amp;title=BOSS%2FDesign"/>
	<link rel="alternate" type="text/html" href="https://wiki.bathcs.com/index.php?title=BOSS/Design&amp;action=history"/>
	<updated>2026-08-26T06:43:24Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.46.0</generator>
	<entry>
		<id>https://wiki.bathcs.com/index.php?title=BOSS/Design&amp;diff=114&amp;oldid=prev</id>
		<title>Hw2210: Rename hosting page</title>
		<link rel="alternate" type="text/html" href="https://wiki.bathcs.com/index.php?title=BOSS/Design&amp;diff=114&amp;oldid=prev"/>
		<updated>2026-06-04T07:49:48Z</updated>

		<summary type="html">&lt;p&gt;Rename hosting page&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw-interface=&quot;&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en-GB&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 07:49, 4 June 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l3&quot;&gt;Line 3:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 3:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;However, we do need to give some recommendations for designing projects, so that future students can still understand and maintain the projects.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;However, we do need to give some recommendations for designing projects, so that future students can still understand and maintain the projects.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;It is also worth noting that due to the requirement of hosting things for free, you will want to read the [[BOSS&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;/Projects&lt;/del&gt;/Hosting|hosting page]] as this limits what you can do signficantly.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;It is also worth noting that due to the requirement of hosting things for free, you will want to read the [[BOSS/Hosting|hosting page]] as this limits what you can do signficantly.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Please make sure to follow the [[BOSS/Languages|coding guidelines]] as well for any programming.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Please make sure to follow the [[BOSS/Languages|coding guidelines]] as well for any programming.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Hw2210</name></author>
	</entry>
	<entry>
		<id>https://wiki.bathcs.com/index.php?title=BOSS/Design&amp;diff=113&amp;oldid=prev</id>
		<title>Hw2210: Translate from boss.bathcs.com written by hw2210 and pcs47</title>
		<link rel="alternate" type="text/html" href="https://wiki.bathcs.com/index.php?title=BOSS/Design&amp;diff=113&amp;oldid=prev"/>
		<updated>2026-06-04T07:48:45Z</updated>

		<summary type="html">&lt;p&gt;Translate from boss.bathcs.com written by hw2210 and pcs47&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;We don’t want to specify any harsh requirements that would prevent students creating a variety of projects.&lt;br /&gt;
&lt;br /&gt;
However, we do need to give some recommendations for designing projects, so that future students can still understand and maintain the projects.&lt;br /&gt;
&lt;br /&gt;
It is also worth noting that due to the requirement of hosting things for free, you will want to read the [[BOSS/Projects/Hosting|hosting page]] as this limits what you can do signficantly.&lt;br /&gt;
&lt;br /&gt;
Please make sure to follow the [[BOSS/Languages|coding guidelines]] as well for any programming.&lt;br /&gt;
&lt;br /&gt;
== KISS ==&lt;br /&gt;
&lt;br /&gt;
Keep it simple stupid!&lt;br /&gt;
&lt;br /&gt;
If it doesn’t require a feature, don’t add it.&lt;br /&gt;
&lt;br /&gt;
If it doesn’t require being written in a fancy programming language, don’t use that.&lt;br /&gt;
&lt;br /&gt;
If it doesn’t require data collection, don’t collect people’s data!&lt;br /&gt;
&lt;br /&gt;
== Existing Systems ==&lt;br /&gt;
&lt;br /&gt;
If a system exists, please try to use it unless its completely impractical.&lt;br /&gt;
&lt;br /&gt;
This is because students don’t have much time and don’t want to be managing a completely new system. However please use open source projects (closed source nearly always comes with a cost, either data collection or money both of which we cannot afford)&lt;br /&gt;
&lt;br /&gt;
Note: I’m mostly referring to libraries. I think its quite fun to write simple projects like a link shortener for yourself.&lt;br /&gt;
&lt;br /&gt;
=== Licensing ===&lt;br /&gt;
&lt;br /&gt;
Please see [https://boss.bathcs.com/policies/licenses/|our license policy] for information on how our projects are licensed.&lt;br /&gt;
&lt;br /&gt;
In general, new projects should be licensed under [https://spdx.org/licenses/LLVM-exception.html &amp;lt;code&amp;gt;Apache-2.0 WITH LLVM-Exception&amp;lt;/code&amp;gt;], contributors must agree to the [https://developercertificate.org/ Developers Certificate of Origin (DCO)], and any contributions must not violate the [https://www.bath.ac.uk/publications/university-of-bath-ip-policy/ University of Bath’s Intellectual Property policy].&lt;br /&gt;
&lt;br /&gt;
== Keep it general ==&lt;br /&gt;
&lt;br /&gt;
Always try to keep the structure of the project general, so that it can be repurposed easily. Don’t take it too far though—there’s a balance.&lt;br /&gt;
&lt;br /&gt;
Generalisation normally leads to cleaner code and better maintainability.&lt;br /&gt;
&lt;br /&gt;
== Modules ==&lt;br /&gt;
&lt;br /&gt;
Modules are your friend, different languages implement them differently and have different ideas about how they should be organised (e.g. Go vs Rust).&lt;br /&gt;
&lt;br /&gt;
We don’t really have opinions, as you should use the style which fits the programming language you are using. If you don’t like that style, don’t write a project in that language (for maintainers, I’m sorry but deal with it).&lt;br /&gt;
&lt;br /&gt;
If you try to go against the style of the programming language, you will find more barriers and have to implement hacky workarounds which will lead to unreadable, confusing and buggy code.&lt;br /&gt;
&lt;br /&gt;
== Data storage ==&lt;br /&gt;
&lt;br /&gt;
Due to limitations with the fact we will never get any funding, we must create projects which only relies on database storage (which we can host for free, see the [[BOSS/Projects/Database|database page]]).&lt;br /&gt;
&lt;br /&gt;
== Docker ==&lt;br /&gt;
&lt;br /&gt;
For easy hosting for free, we require projects which need hosting to be dockerised (meaning they have a &amp;lt;code&amp;gt;Dockerfile&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
These Docker containers cannot interact with the host system at all.&lt;br /&gt;
&lt;br /&gt;
== Websites ==&lt;br /&gt;
&lt;br /&gt;
If all pages can be written in markdown, then use a static site generator.&lt;br /&gt;
&lt;br /&gt;
If a website is dynamic it should always be designed with a backend and frontend to help with code security, which also helps with a website feeling “modern”.&lt;br /&gt;
&lt;br /&gt;
Any data input should be validated on the backend.&lt;/div&gt;</summary>
		<author><name>Hw2210</name></author>
	</entry>
</feed>