Final Project

Created Tuesday 20 October 2026


Pre-Final Project


Project Rubric

For your project, your team will work towards a documented implementation (or proof-of-concept) of a user-facing related task or service: The catch is; it must be fundamentally PERMISSIONLESS. I.e. You can potentially run this thing with *no permission* from any other person or entity.


This often means the same as "self-hosted." Let's talk about what that means. Roughly, it may the kind of thing that's associated with "hosting" or "the cloud" — but unlike many of those, you do, or you can, have full access to the code running the project on a computer you own or control. Additionally, all modular components and parts must have permissionless, self-hosted options.


Examples:

A short list of examples might be:
- A file synchronization service (e.g. Syncthing or Nextcloud as a Dropbox replacement)
- A music server (e.g. Funkwhale or MPD as a Spotify replacement)
- A media server (e.g. Plex or Jellyfin as a Netflix replacement)
- A voice controlled assistant (e.g. Mycroft or json2voice as a Siri/Alexa replacement)
- Self Hosted AI ?( e.g. LLama or Stable Diffusion as a ChatGPT replacement)


You are by no means llmited to the choices here. Below is a large list of possible ideas.


https://github.com/awesome-selfhosted/awesome-selfhosted
https://www.reddit.com/r/selfhosted/


IMPORTANT: You will likely have a strong predilection to compare this in your head to "a large business" and perhaps thinking of it as a "product." This is not strictly forbidden, but you might have more interest and luck and a better time to *not* do this. You are not required to sell anything, you are not required to make something that makes money. You can just create something cool for your friends, or strangers, to use and/or play around with.



DELIVERABLE

What you will deliver to me is documentation and proof of effort. I anticipate that many of may find the inclusion of examples and screenshots of your work to be necessary as proof of work. Please provide your final documentation as a pdf, one per TEAM.
You should provide the following; please do NOT use generative AI for writing up this deliverable.


I. An Introduction.

The introduction should state the general area you began looking into. Describe what "thing" you'd like the technology to do generally. Talk about what it actually does, and brainstorm possible advantages and drawbacks of doing it in a "self-hosted" way. Be prepared to comment later on whether your predictions were correct.


Name the technologies you propose to actually use or attempt to use in the beginning, including the "machine" and the "software." I am expecting for you to also name and also describe in sufficient detail the nearest alternative or alternatives, which will most often be something we associate with "the cloud" – e.g. Spotify vs. a locall hosted music server.


While you need not hit all of these perfectly, the below is a good guide for questions that should be addressed.

What is it?
Why is the thing generally useful or interesting?
What may be the advantages or disadvantages of self-hosting?
Explain what (possible) paid or cloud service this might replace, if applicable.
Provide other possible options and possibilities.
Who are ALL the users (e.g. will there be administrators vs regular users?)
Where will it be hosted, ideally and/or practically?
When will it be active, ideally and/or practically?


II. The process


Document your experiences of getting these things up and running; please definitely include mistakes and problems you encountered along the way as proof of work.


You should strive to

(A good example of something to comment on for external testing is how well it works on a phone as well as on a computer.)


Screenshots may be very helpful here.


Note, extreme pivots are very welcome! If you started somewhere and ended up doing or working on something very different, that is fine! Again, effort is key.


III. Conclusions

How did it go? Compare all of your solutions and give me conclusions. Which were easy to get up and running? Do you think this could possibly replace what most people use now? Do you think, like Linux, perhaps the presence of them might help anyway by providing competition? Are there missing features or changes you would make? What would make them perfect, etc?



Backlinks: FSU Courses:LIS3353