The old YourList application
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
TooMuchRAM ed2529be55 update readme 1 year ago
assets Fixed a bug regarding the flush function (function didn't send the list ID along) 4 years ago
nodeapp update readme 1 year ago
vex -Fixed a few bugs. 4 years ago
README.md update readme 1 year ago
about.html -Fixed some bugs (see Discord for more info) 4 years ago
config.js -Fixed a few bugs. 4 years ago
credits.html -Fixed some bugs (see Discord for more info) 4 years ago
downloads.html -Fixed some bugs (see Discord for more info) 4 years ago
index.html -Fixed some bugs (see Discord for more info) 4 years ago
list.html Fixed a bug where lists wouldn't get unshared even though they were flushed 4 years ago
login.html -Fixed some bugs (see Discord for more info) 4 years ago
tips.html -Fixed some bugs (see Discord for more info) 4 years ago
version.html -Fixed some bugs (see Discord for more info) 4 years ago

README.md

YourList

Your list is an old project of mine. This is its final iteration; there have been 4 or 5 other versions before this one. I wrote it during a holiday in Italy in 2018 while disconnected from the internet, so don't expect much. If you want to run it, you will need an old login system of mine (the one from my 2018 website if I remember correctly).

YourList Logo

YourList is an application for making and distributing lists. You can make lists, edit them, delete them, share them, and more. Now, I'm not very good at describing something, so just go take a look at yourself.

Installation

While making YourList, I tried as hard as I could to make it easy to set up yourself. You will still have to do some configuration work, but it won't be much.

Dependencies

The first thing you'll have to do, is set up a directory to host the files in and clone the git repository into it. Then, install node.js (just look it up, it's not that hard). Following that, you'll have to install some npm packages:

  • express (General framework)
  • ejs (templating tool)
  • node-localstorage (database)
  • morgan (logging requests)
  • body-parser (retrieving POST-variables)
  • locutus (assimilate other languages’ standard libraries to JavaScript)
  • cookieParser (required if you use my login system)

You can install these by running npm install in the 'nodeapp' directory.

Client-side configuration

After you've installed the required packages, you'll have to edit some configuration files. You can configure the client-side script using config.js in the root directory of your installation. Here, you'll find several options:

  • maximumLists: this is the variable that defines how many lists the user may have. You'll have to set the same value or more in [nodeJS file on its way]. Available options: everything above 1, recommended 10 or more depending on your environment.
  • defaultsAmountOfLists: this is the option that configures the default amount of lists the user sees on the home page when starting the application. Available options: everything below maximumLists.
  • defaultsCurrency: the currency the user sees when working with money. The user has to turn off "Only show general options" for this to work. Available options: "euro" "pound" "dollar" "yen".
  • defaultsDatabase: the database the application uses. You can not choose between something like MySQL and PostgreSQL etc., but you can choose if you want the database to be stored on a server or on the user's computer. Available options: "local" "server"
  • defaultsShowExtraButtons: with "Extra buttons", I refer to the buttons "Flush", "Export", "Import" and "Name" in the List Editor. You'll see what I mean when you turn this option on (it's off by default). It's off by default because the buttons are already present on the home page. Available options: true false
  • defaultsRenderNickname: controls if the nickname of the list is shown in the List Editor in place of the list number. Again, turn this option on, give the list a nickname using the "Name" button and go to the List Editor to see what I mean. Available options: true false
  • defaultsOnlyShowGeneralOptions: YourList was originally designed as a place to put what you want for your birthday or something. Because of that, there's still a "Shop" and a "Price" option in the New item and in the Edit item menu, except if you turn this option on. Available options: true false
  • defaultsBackendURL: the most important part of it all. Here, you'll have to specify the path at which your backend is running. Example: https://example.com/yourlist/backend
  • backURL: the URL you specify to get back to your site. The button, which can be found under links just like the upcoming *URL variables, will disappear when you don't specify a URL.
  • aboutURL: when users click on the 'About' button, a window with a width of 600 containing this URL will be opened. This button will disappear when you don't specify a URL.
  • TipsAndTricksURL: a URL to a Tips & Tricks page. If you use the default, please edit the email address that's present in the file (tips.html).
  • creditsURL: a URL to credits. The best thing you can do is either leave it on its default state or just remove it. It's not that important, in contrast to...
  • privacypolicyURL: being the most important URL of them all, this one leads users to the privacy policy. Write one that complies with the GDPR, please. Because I can't predict what you're going to do with the data, I won't be shipping a default one.
  • downloadsURL: where users can download the desktop program.
  • loginURL: this is where users end up if they're not logged in. In case you set ylLogin to true, this is the URL to where the emailaddress and password get send.
  • ylLogin: setting this to true activates the in-house YourList login. In case you decide to set this to true, specify where the emailaddress and password get send and also configure registerURL.
  • registerURL: if you set ylLogin to true, this is where the users get redirected when they don't have an account.
  • removeOptionsButton: if you set this to true, the "Settings" button on the home page will disappear and the Settings menu won't be rendered at all. This means your users won't be able to edit any options, but this is not needed when you just don't want your users to edit the backend options, because there's an option for that:
  • removeBackendOptions: when you turn this on, the backend options will disappear, but the general options will stay.

You can't remove the "Version Info" button, because it's important when troubleshooting.

Server-side configuration

Once you've configured the client-side script, it's time to configure the server side script (nodeapp/serverconfig.js):

  • port: the port at which the application runs. Available options: any number above 1024 when running as non-root.
  • maximumLists: the same as in the client-side config
  • DBdirectory: the directory in which lists are stored. Do not use a directory which is accessible from the Internet, as it allows downloading the database.
  • domain: the domain/IP address at which YourList runs. This is only used to generate a 'View shared list' URL.
  • webroot: the path at which the YourList files reside. Please use an absolute path, and don't end it in a forward slash. Only use forward slashes in the path, backward slashes will break the application.
  • webrootExtension: this is used when you run YourList at for example https://example.com/yourlist. In that case, you'd set it to '/yourlist'. If YourList is running at for example 'https://yourlist.example.com', you don't have to set this.

Additional notes

You don't have to install a web server like nginx or apache (exception: if you use it as a reverse proxy, which I highly recommend given that the application on its own doesn't support SSL or TLS). I recommend using my login system, as I build this app around it. You will have to think through how to do that, since that login system is written in PHP. If you use it though, it'll all work out of the box.

For app developers

The app stores lists in the database using the user ID by default. This user ID is retrieved via an HttpOnly cookie called 'id'. If you're using another login system than mine, set this to a difficult-to-guess value! I've had a friend of mine edit this cookie to contain my user ID, which caused him to see my lists. Also educate your users to never give away their user ID! If you want documentation on what to send to the server and what you'll retrieve, please send a request to me, and I'll write documentation on it as soon as possible.

Support

You can always contact me via info@toomuchram.net, Discord or Reddit (see https://toomuchram.net/). I will try to answer your question as fast as possible. Please also send feature requests to me, it helps me get inspiration on what to add to YourList. Don't request something like real-time collaborating on a list, because I'm not capable of doing that. Maybe if you help me. Perhaps.

https://paypal.me/toomuchram