Git Product home page Git Product logo

webnovel's Introduction

WebNovel

WebNovel is a web application allowing users to collaborate on big pieces of text non-linearly. More accurately it lets users create new parallel chapters wherever they want in a book, creating a book with a tree structure.

Development

To run this project you must have Node.js, npm and angular-cli installed.

To install all dependencies run:

npm install

There are two main components in this project. The server, written in node, which provide the APIs, as well as the initial html page. The front-end is written in Angular, which means that it is a single-page application. This means you must first build the angular application:

ng build

This will create a compiled project in a dist folder, which the node server will serve from the root of the website. If you want live updates, meaning the website updates as you write code, run ng build --watch.

Then you need to start the node server by running node index.js.

If you also want to run the badgeworker process, which checks whether to award a new badge to users every minute run node index.js with environment variable PROCESS_TYPE=badge-worker

Environment variables

In order for the server code to run you need to have the following environment variables set:

MONGODB_URI: mongo://<username>:<password>@<localhost>:<port>/<collection>

SECRET: <any string> (This is used by the local login)

REDIS_URL: 127.0.0.1:6379 (Redis is used to keep track of the mapping of userIDs and socketIDs. this way it is available for all processes.)

For development purposes the easiest way to use Redis is to just run a server locally...

Optional

RECAPTCHA_SECRET: <secret from recaptcha> (This is only needed if you want recaptcha to work)

NODE_ENV: development | production

PROCESS_TYPE: web | badge-worker (Defaults to web)

Other info

This project was written as part of a master thesis which can be found here: http://bora.uib.no/handle/1956/19624

License

MIT

webnovel's People

Contributors

angular-cli avatar oleeskild avatar

Watchers

 avatar  avatar  avatar

Forkers

damare01

webnovel's Issues

Highlight nodes in graph that can be clicked

Right now you can only navigate to nodes you've read in the past or those who are neighbors of the chapter currently being read. This is not reflected in any way to the user. Give some sort of feedback to the user as to which nodes can be clicked when exploring the graph

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.