Nexus - A simple and lightweight portal for your webserver Published the 2017-10-19 My first project of this type is called "Nexus". It is, as its name shows, a nexus to join every of my websites/projects/tools in a single central page, under the form of a list. Aimed to be easily used, it's simply a static page with a list and a bit of info'. ## How it works A project, website and whatever you want can be added by adding or linking a JSON config file in the /websites/ subdirectory. Of course, the JSON file must follow a few "norms"! Must be provided 3 fields, which are the following: - Project name; - Project description; - Project URL. Alternatively, can be added the following two fields: - Project "category" (else, it'll show "no category"); - Project author (else, "Anonymous"). But simply making the JSON files by hand is quite boring. Instead, I wrote a small python script to auto generate the JSON files. You'll note that the script is quite minimalistic and prevent almost nothing, so you kinda must get every field right or else you'd need to restart from scratch. This can be problematic, and that's one of the things I'll work on, to make the script a bit more "intelligent", so it'll be easier to check and change some info while creating the script. ## What about the website? Keeping the minimalistic idea in mind, and since I'm a pretty bad designer, I decided to go with the cool Skeleton CSS library, as-is (without modifying anything). Well, I must say it works wonderfully well! > And what about the core website functionalities? > What if I have a shitton of projects and want to search for a specific one? I'd say `ctrl+F` but that would be annoying. Right? Instead, I wrote a bit of vanilla javascript in-page, to add some search & sort functionality. I sacrificed a few milliseconds of loading time (growing exponentially following how many projects you have) to add a sorter (by alphabetical, author name and category) and a search bar. And, even if the light-loading aspect has been lost a bit, I think that now the website is also more usable, which is an important criteria too. UX and performance, OK! ## Conclusion In short, a small and pretty cool project that have been done on my spare time, and now, thanks to that, it's a bit easier for me to manage my websites on my server!