Giter Site home page Giter Site logo

yesterlinks's Introduction

Yesterlinks

Yesterlinks is a database of links to unique or interesting websites.

This is a project, in its infancy, designed to be a directory of links of various websites as well as a 'random page' button that loads a link at random.

It's currently being designed and written with PHP/SQL and Javascript.

If you want to contribute to this project, please go ahead! If you're not tech-savvy I'll be including a description of how it works, and welcome all ideas.

Goals

The goal of this project is to create a database of links to cool or interesting lesser-known websites. It is meant to encourage people to "bloomscroll" - the opposite of doomscrolling.

New Features

  • A report system which allows users to report a link
  • Category checkbox filters
  • Search filter
  • Tagging system (thank you @amethystcube !!!!)
  • JSON file creation when website is changed
  • 'Surf' bookmarket link added (drag it to your bookmarks bar and click to surf!)

Demo

You can play with a live demo at https://links.yesterweb.org/

The Webpages

  1. Home: /index.php
    • public, view only; this is the main page
  2. Submit: /submit-a-link.html
    • public, anti-bot: submit a link to the directory
  3. Admin: /admin
    • requires a password: the place to edit/delete/approve entries
  4. Login: /login
    • public: enter credentials for access to /admin

The Database

The database is the back-end which stores the data; it has the following tables:

Table: websites

Each row of the websites table has six columns:

  1. id: unique identifier for each row
  2. title: website title
  3. url: website URL
  4. descr: a description for the website
  5. category: give the site a category
  6. pending: boolean; toggle visibility in the public list
    • 0: false, will be visible
    • 1: true, will not be visible

Table: tags

Each row of the tags table has two columns:

  1. id: unique identifier for each row
  2. name: the name of the tag

Table: taglist

Each row of the taglist table has 3 columns:

  1. id: unique identifier for each row
  2. tag_id: the ID of the tag being added
  3. site_id: the ID of the site being tagged

This table is added to the results using a JOIN clause, allowing the tags for each site to be listed in the table

Table: votelist

Each row of the votelist table has 5 columns:

  1. id: unique identifier for each row
  2. time_cast: a timestamp of when the vote was cast (used for vote weighting)
  3. voter_id: a hash indicating who cast the vote
  4. site_id: the ID of the site for which the vote was cast
  5. vote: a boolean indicating the type of vote
    • 0: downvote (disabled)
    • 1: upvote/recommend

Table: users

Each row of the users table has eight columns:

  1. id: unique identifier for each row
  2. datetime: date of registration
  3. email: user email
  4. name: user name
  5. username: username
  6. password: password encoded with bcrypt
  7. hash: password encrypted with MD5
  8. active: whether or not the account is active (0 or 1)

Table: password_reset_temp

Each row of the password_reset_temp table has three columns:

  1. username: username
  2. key: validation key that is appended to the email link
  3. expDate: date the validation key expires

How to Clone & Make a Copy

  1. Download a .zip of the repo or git clone it.
  2. Create a database and import the schema from sadness_websurferdb.sql
  3. Update the config.php file:
    • $host: (in most cases, you can leave this one alone)
    • $user: the account name you set for access to the database
    • $password: the password for the account name you just listed
    • $dbname: the name of the database with the directory tables
  4. If you visit index.php, you should see the directory table!

How to Contribute

Don't know how to code? No problem! We are looking for all sorts of assistance here. If you play around with the demo and you have some feedback, please reach out! You can open an Issue on here, drop by the Discord server, or email me at [email protected].

Contributors

yesterlinks's People

Contributors

amethystcube avatar sadgrlonline avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

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.