Final Project Rubric

Created Tuesday 10 March 2026


Project Rubric

For your project, your team will work towards a documented implementation (or proof-of-concept) of any IT/Computer related task or service: The catch is; it must be "self-hosted." — or at least self-hostable.


Self-hosted is the most important part; let's talk about what that means. Roughly, it will likely be 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.


ON ORIGINALITY:

There is no specific "originality" requirement, but please note that to the extent that your project is NOT original, you will be expected to provide more context and variation in terms of what you focus on as work.


Which is to say, if you do something unoriginal, like below – lets say "just" music server – please show effort elsewhere. This could be comparison to more than one,possibly adding features, or even analyzing what your solution could do the the market.


Originality could include doing something from scratch, or adding (or removing) features from something that already exists, and if a lot of work is done there, no need to do as much "analysis" as above.


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 Vicuna 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: The PRIMARY goal is to work on something that you or someone you know personally might ACTUALLY use regularly.
Resist the very strong urge to treat and write this up as if it were going to be a PRODUCT to sell to someone who isn't you.
(Note, this gives you FREEDOM. After you try it, you might decide it sucks. Thats fine! You can be honest here!)


AI

Perhaps the thing that renders much of this document obsolete; I'm fully aware that many of the coding agents have the ability to create projects like this with prompting.


You know what? FANTASTIC. Do it. Works for me. In terms of "creating or modifying the actual code implemented in the project" (as strongly opposed to the writeup) you have absolute free reign to use whatever AI tools you want, as long as it is well documented.


Note that Google's Gemini and Microsoft Copilot, via your FSU credentials, can be used "safely," in terms of staying within both legal guidelines of the school as well as providing a strong likelihood that your personal info won't be sent back to their servers, if this is important to you.


Docker

The small bit of Linux skill you have learned in this class will probably prove useful — but is mostly no longer absolutely necessary. The generally fantastic tool Docker has *greatly* streamlined the processes involved with installing, testing, and running tools such as those required for this project.


I demonstrated a little bit of the following video, but you may watch it in full to get the gist. And as always, there are probably better videos and resources out there.


Docker - LAMP - Ngrok mSTREAM setup in a Virtual Machine Video - John Marks


A generally nice guide, also most AI/LLM's such as ChatGPT tend to "understand" Docker pretty well:
https://docker-handbook.farhan.dev/


Networking.

Perhaps the most unnecessarily difficult thing about "self-hosting" isn't the software itself, but getting it on the internet so that anyone can use it. Setting this up long term is a great goal and I will provide this information; but for purposes of the assignment, using a short term testing system like "ngrok" is sufficient.
More info here : Networking


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 FSU Courses:LIS3353:Final Project Docs