/    Sign up×
Community /Pin to ProfileBookmark

Web app for philosophical treatise

Hi all,

My friend wants to write a philosophical treatise, and he has asked me to develop a web application to help him do this, and to share it when it’s finished. Essentially he wants a wiki, with a visual map of the connections between articles. Any guidance on this would be much appreciated.

Here are more details of how it would work – if you would prefer to see it in pictures, see the bottom of the post for a link. For his workflow he would like the ability to select text and contract or expand it into another article. Contracting would mean selecting a paragraph in the editor and making it into a new page of the wiki, whilst replacing that paragraph with a single link to that new page. Expanding is selecting a word and making it into the title of a new article, whilst turning it into a clickable link. He wants the visual map to update automatically as he carries out these types of operations, and be navigable a bit like a mind-map, but probably more complex.

I have done a one-year conversion degree in computing, some online courses and know three programming languages now – I think picking up necessary new ones/new technologies shouldn’t be too hard, and am happy to. I am not sure how much I may be overstretching myself with this project though.

Things we have been looking into so far are: extending Wiki.js for Node or making a Node app from scratch, Dracula graph library, and yFiles graph library (we may be able to persuade them to let us use it for free).

Here are a set of mockups which show basically how it would work. They are using Mac TextEdit as a basis but we would like to make a web app rather than a desktop application.

https://imgur.com/a/pE5Vtmu

Thank you for your input!

to post a comment
Full-stack Developer

2 Comments(s)

Copy linkTweet thisAlerts:
@NogDogNov 15.2019 — I do not have specific technology suggestions, but just the general one of giving some detailed up-front thought to how you can break the app up into bite-sized, (mostly) independent modules that can "talk" to each other. I.e. you might (hypothetically) end up creating the front-end as a "single-page app" using AngularJS, have it talk to a client-side API implemented in Python that does all the CRUD logic, and use a Neo4j graph database to store the data nodes and relationships. Then you might find a nice library that let's you display those nodes/relationships in your AngularJS pages. Or not...just meant to illustrate how to start thinking about it. :)

The goal is to make each such module (and sub-modules) as independent as possible, and therefore as easy to test as possible without dependencies on the other modules (also making it easier to change your mind on how to implement one of them).
Copy linkTweet thisAlerts:
@continuum1234authorNov 19.2019 — Hi NogDog,

Thank you for your input, it is really useful to think of it as a series of interconnected modules. I will definitely bear that in mind!
×

Success!

Help @continuum1234 spread the word by sharing this article on Twitter...

Tweet This
Sign in
Forgot password?
Sign in with TwitchSign in with GithubCreate Account
about: ({
version: 0.1.9 BETA 4.26,
whats_new: community page,
up_next: more Davinci•003 tasks,
coming_soon: events calendar,
social: @webDeveloperHQ
});

legal: ({
terms: of use,
privacy: policy
});
changelog: (
version: 0.1.9,
notes: added community page

version: 0.1.8,
notes: added Davinci•003

version: 0.1.7,
notes: upvote answers to bounties

version: 0.1.6,
notes: article editor refresh
)...
recent_tips: (
tipper: @Yussuf4331,
tipped: article
amount: 1000 SATS,

tipper: @darkwebsites540,
tipped: article
amount: 10 SATS,

tipper: @Samric24,
tipped: article
amount: 1000 SATS,
)...