I'd like to open source my programing projects, but as an autodidact in coding and as someone who primarily codes for himself, I am still not sufficiently confident with the code and the UX.
In the following, I will briefly describe each project. Let me know if you want to try them out.
JACMS was originally conceptualized to be an Indieweb page, but deviated from being simply that somewhere along the path. It thus differentiates entry types between notes, blog posts (Indieweb people call them articles), bookmarks, events, and videos. Additional entry types are publications - conceptualized for e.g. researchers -, lists - originally aimed for listing books as Goodreads does, there are plans to expand this -, and bibliography and "my books" which are at the moment the same technologically. Both display bibliographical data from an XML-file, which uses MODS as created by JabRef as I personally use that.
To access the backend a user needs to be logged in. After logging in, a link to the backend will appear at the upper right of the screen (the login script used was taken from zubrag.com). Alternatively, notes, bookmarks, and events can be added right from the frontend, too.
In the backend, users can enter new contents or edit settings according to user levels previously assigned to them. User information can be added to then be displayed below posts of the given user. Profile pages for each user who has an account are also generated from this information but are only linked in case the user does not enter a personal homepage. Passwords and user levels are still hard-coded - this is something that definitely needs to change eventually.
Depending on the given user level, users can also edit the design of the website, empty the databases or edit the general settings of the website, for example disabling entry types, adding access tokens for syndication to Twitter, and entering information about whatever is represented by the website.
Additional functions can be found in the tab "more." Here users can moderate webmentions (so far still retrieved fromwebmention.io), reblog things - so far only halfway implemented based on RSS feeds - and create custom pages. I also started implementing a newsletter there, but that is also only halfway done yet: it lists all new contents and recent/upcoming events from a specified time and sends them to a list of users. Administrators unfortunately still need to press a send button manually.
In short: Features
- Entry types: notes, blog entries, events, videos, lists, publications, presentations, bibliography, books
- Link recognition and video/photo embedding for notes
- Supports Indonesian, German, and English as languages for the backend and the navigation
- Auto-generated sitemap
- Semi-automatic updating system
- A simple calendar view for events
- Receiving webmentions via webmention.io
- Option to syndicate information to Twitter
- Fully customizable design
- Basic user management system
- One custom page
- WYSIWYG editor for longer types of content (using tinymce)
- Halfway implemented:
- Backuping and wiping databases with one click
PHP File Manager with Annotations
(Find it here)
I was kind of annoyed that filehosters and cloud services do not give an option to annotate files. So I wrote this little file manager, which indexes all subdirectories of the directory it is located in. It then lets users with the given editing rights enter descriptions for the respective files or folders, remove or rename them and upload new files. Users can be assigned specific subdirectories for which they have editing rights.
This tool also runs on PHP.
- Indexing all subdirectories and files of/in the directory the scripts are located in
- Annotation system for files and folders
- Option to give users editing rights only for certain subdirectories
- Options for renaming (files only as of now) and deleting files and folders
- Notifying system in case there are updates
A Simple Version Control Application
(Find it here)
There is not much to say about this. Data is once again stored in an XML file. Additional functions include a parser designed to display the data in a most easily embed-able form and the option to attach files to new versions.
- Web editor for basic version control running on PHP
- Page for parsing the data and displaying it in human-readable form
- Data is saved in XML
- Option to attach a file to each new version
XML-Based Editor for Presentations
(Find it here)
With this tool I aimed to make creating web presentations easier. Information is stored in an XML-file for each new presentation; the design can be edited in the browser by changing the CSS file used for the presentation.
The XML file is then parsed to create the presentation. There are functions for embedding images (either half-width on the left or right or full size) and videos. Text is displayed in lists. Additionally, sources can be added, which will be visible upon scrolling down on the respective page.
I have pretty much abandoned this project. If it is of help to anyone, I will gladly share it. Also, the login script used is again, as in all these projects, the one from zubrag.com.
- Creating presentations in HTML from data stored in XML-files
- Embedding videos and images
- Noting down sources for each slide