
What | How | Who
The Neostumble Project
A general plan for the Neostumble Project
Background
Picture this: It's 2008. You log into your computer, check your socials and find that no one is on Instant Messaging this early in the morning. The blogs and webcomics you follow haven't been updated today, and your forum posts are caught up on. What do you do with your internet access?
You click the stumble button in your browser toolbar, or you go to the in-frame browser and stumble around the internet.
It was a time of organic web discovery. It was almost like manual crawling. You would make an account, add some interests, and start looking at sites. With every thumbs-up, thumbs-down, or report came a change to the ecosystem.
You could find websites with adorable animal photos, new hacks, fun games, web art, and more. Websites would be submitted with user-defined categories. It was the world of a human-curated web.
The goal of this project is to find a way to do this for the smolweb. How can we bring back this organic discovery?
The Simple Version
At its core, all the NeoStumble project is a list of websites that can be randomly chosen from and users can suggest pages to add.
Effectively, a Javascript button and a CSV file.
The first iteration of the project will be just that. It will be extremely simple.
The Ultimate Goal
The Complex Concept
The project aims to create a new Stumble-Upon type system based on human-curated websites. It will have moderation controls as well as the ability for users to submit and categorize sites upon submittal.
User Stories
The user stories are fairly straightforward, in theory.
-
A standard-user discovering sites
- A user creates an account with a username and password
- They select from a list of pre-defined categories
- When they stumble, they are sent to sites that other users with their categories have given a thumbs-up or submitted
- Because this is user driven settings allow them to be shown things that similar users like, or only in their categories
- This allows them to broaden their web-exposure horizons
- All users are defined as users that are members of the service
- Community users are defined as users that share at least 15% category in common
- Similar users are defined as users that share at least 75% of categories in common
- Same users are defined as users that share at least 95% of categories in common
- They rate the site with a thumbs-up, thumbs-down, or report the site for having content that violates the code-of-content
-
A power-user submitting sites
- The user is logged into their account
- They find a webpage that they really like and think would be fun to share
- They go to the Submission page and fill out the form
- They input the URL
- They select which cateogries the URL fits under
- They provide a short description for the moderation team
- The site is approved or denied after a short review
- Submitted sites can be given more than one category
-
A Moderator checking a submitted site
- The Moderator logs into the control panel
- They open the submission log and begin selecting sites
- They validate if a site will display in a frame, marking if it does not
- They check the page content for violations of the code of conduct
- This is only the submitted page, and obvious site elements
- Users can report the page on the grounds that other pages in the site violate the code of conduct
- They approve or deny the site adding it to the allow or deny list
- They note the reason for the denial in the deny log
-
A Moderator reviewing a report for a website that violates the code of conduct
- The Moderator is logged into the control panel
- They review the reported site log
- They read the user submission as to why the site should be removed
- They check the site elements recommended by the user, and browse the site looking for code of conduct violations
- If a violation is found, they add the site to the deny list and note the reason in the deny log
- The user who submitted the site is given a strike and informed that a site they submitted was denied and the reason for the denial
- After 3 strikes, the user is restricted from submitting sites for a period of time
- After 3 restriction periods the user is blocked from submitting sites
- If a violation is not found and the report is unfounded, the user is informed why the site was not denied
- The user can submit an appeal of this to be reviewed by another moderator
- If a user is found to consistently be reporting sites falsely, they can be restricted from using the report feature
- After 3 restriction periods, the user will no longer be allowed to report sites
- Reported sites are not suggested to users until a moderation decision has been reached
-
A site that is no longer available
- If at least 3-5 users report a site as being offline, the site can be removed from display as being offline
- The submitter of a site is informed and can appeal this decision by submitting a moderation report
Project License
This project, associated plans, code, and all elements are licensed under the Cooperative Non-Violent Public license V8 as found at https://git.pixie.town/thufie/npl-builder/src/branch/main/cnpl.md
The Architecture
The above requires at least 4 different elements:
-
A database of webpages including:
- URL
- Categories
- Rating per category
- Allow list
- Deny list
- Moderation decisions
- Log Notes
- Frame Usability
- Submitting user
-
A user database
- Submissions
- Categories
- If they are allowed to report
- If they are allowed to submit
- Password hashes
- Salt and Pepper
-
2 Web applications
- One for users including:
- A Stumble feature with in-frame browsing
- A Stumble button that opens a site in a new tab (not limited to in-frame accessible sites)
- A Small profile feature allowing users to change their password, change their contact information, and set their categories
- One for moderators including:
- A list of pages submitted
- A list of violation reports
- A list of non-violation reports
- A control panel allowing the adjustment of a URL's categories
- One for users including:
Project Breakdown
- Project Meta Elements
The project will have to be defined- This portion has been completed by this page.
- A project branding guide will have to be created
- Colors will have to be chosen
- Languages will have to be chosen
- Language style will have to be chosen
A dedicated project website will need to be established and created- A version control system will need to be established
- A project contribution and participation code of conduct will need to be created
- Non-negotiable features include no AI driven, created, or assisted code. Ever.
- Stipulations against any form of discrimination
- A user and submission code of conduct will need to be created
- A communication system for project team members will need to be created
- An initial project critical path will need to be created
- Project cadence meetings will need to be scheduled
- Team members will need to work out various plans for sub-projects
- Tasks will need to be broken up into meaningful sub-tasks
This creates several different project streams that would need to be undertaken:
-
Database Creation and Management
- The databases will need to be defined
- Success criteria include UML diagrams for all database elements
- The databases will need to be designed
- Success criteria includes schemata developed for each database in the chosen database language
- Success criteria includes scripts to deploy the databases
- Test databases will need to be deployed
- Success criteria includes deployment of databases and tests to confirm successful deployment
- Production databases will need to be deployed
- Success criteria includes deployment of the production database ready for use
- The databases will need to be defined
-
User application development
- The user application will need to be defined
- Success criteria includes UML diagrams for the primary functions of the application
- Primary functions includes:
- Account Creation
- Login
- Category selection
- Password Modification
- Stumbling
- Submitting websites
- Reporting a Violation
- Reporting of an important non-violation
- Primary functions includes:
- Success criteria includes UML diagrams for the primary functions of the application
- The user application will need to be designed
- Success criteria includes a wire-box diagram for the user interface and pages for the application
- The user application will need the back-end developed
- Success criteria includes code elements for each primary function as listed above
- Success criteria includes test capabilities for each primary function as listed above
- The UI for the user application will need to be developed
- Success criteria includes front-end elements that interact with code elements for each primary function of the site
- The user application will need to be defined
-
Moderator Application Developed
- The moderator application will need to be defined
- Success criteria includes UML diagrams for the primary functions of the application
- Primary functions includes:
- Reviewing Submitted pages
- Reviewing the Violation Report Log
- Reviewing the Non-Violation report log
- User account modification
- Strikes
- Removal of Privileges
- Submitted Page Modification
- Category changes
- Allow Listing
- Deny Listing
- Notes for the Log
- Primary functions includes:
- Success criteria includes UML diagrams for the primary functions of the application
- The moderator application will need to be designed:
- Success criteria includes a wire-box diagram for the user interface and pages for the application
- The moderator application will need the back-end developed
- Success criteria includes code elements for each primary function as listed above
- Success criteria includes test capabilities for each primary function as listed above
- The UI for the moderator application will need to be developed
- Success criteria includes front-end elements that interact with code elements for each primary function of the site
- The moderator application will need to be defined
Project needs
A successful project of this size generally has multiple roles and people involved.
Roles include:
- Project Lead
- Accountable for ensuring the project remains on time and making decisions regarding design elements and code decisions
- Responsible for maintaining project version control repository and communications
- Project Stream Managers
- Responsible for ensuring project development is maintained.
- Accountable for creating timelines and meeting self-defined (and very flexible) deadlines
- Project developers and designers
- Accountable for performing project development and design tasks
- Responsible for developing methods and designs for project elements
Join the Project
If you have read this far and are interested in joining the project: Please email me at jaycee@starbase17.space
by j4yc33