Skip to content

๐Ÿ•น๏ธ A place to showcase a variety of independent widgets with different functionalities.

License

Notifications You must be signed in to change notification settings

aniqatc/playground

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

playground

https://playground.aniqa.dev

๐Ÿ•น๏ธ A place to showcase a collection of independent, interactive widgets that each demonstrate a different functionality using both frontend and backend technologies.

Tech

  • Frontend: HTML5, Tailwind, Sass, JavaScript
  • Backend: Node, Express, MongoDB, Mongoose

Hosts

  • Frontend: Vercel
  • Backend: Heroku
  • Database: MongoDB Atlas

Build Tools

  • Bundling & Optimization: Webpack
  • Tailwind Processing: PostCSS
  • Linter: ESLint
  • Formatter: Prettier

Project Files

playground/
โ”œโ”€โ”€ client/                 # Client-side code
โ”‚   โ”œโ”€โ”€ public/             # Public assets
โ”‚   โ”œโ”€โ”€ src/                # Source code for the client
โ”‚   โ”‚   โ”œโ”€โ”€ main/           # Main client-side scripts and styles (relating to theme mode, styling, like system, user handling, etc)
โ”‚   โ”‚   โ”œโ”€โ”€ widgets/        # Client-side logic for individual widgets
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ 01/         # Widget 01 (About)
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ 02/         # Widget 02 (Calculator)
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ 03/         # Widget 03 (Digital Footprint)
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ 04/         # Widget 04 (Task Manager)
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ 05/         # Widget 05 (Financial Market Monitor)
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ 06/         # Widget 06 (Historical Lottery Search)
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ 07/         # Widget 07 (GitHub Repository Visualizer)
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ 08/         # Widget 08 (Community Bookmarks)
โ”‚   โ”‚   โ”‚   โ”‚    โ”‚          # Example structure of individual widget folders:
โ”‚   โ”‚   โ”‚   โ”‚    โ”œโ”€โ”€ core/  
โ”‚   โ”‚   โ”‚   โ”‚    โ”œโ”€โ”€ content.js
โ”‚   โ”‚   โ”‚   โ”‚    โ”œโ”€โ”€ script.js
โ”‚   โ”‚   โ”‚   โ”‚    โ”œโ”€โ”€ style.scss
โ”‚   โ”‚   โ”‚   
โ”‚   โ”‚   โ”œโ”€โ”€ _border.html    # Template for animated borders (only used on Widget 01)
โ”‚   โ”‚   โ”œโ”€โ”€ _card.html      # Template for the widget container
โ”‚   โ”‚
โ”‚   โ”œโ”€โ”€ .env                # Environment variables for the client-side
โ”‚   โ”œโ”€โ”€ .env.development    # Environment-specific variables for development mode in the client-side
โ”‚   โ”œโ”€โ”€ .eslintrc.js        # ESLint configuration for linting client-side JavaScript
โ”‚   โ”œโ”€โ”€ .prettierrc         # Prettier configuration for formatting client-side code
โ”‚   โ”œโ”€โ”€ postcss.config.js   # PostCSS configuration for CSS processing
โ”‚   โ”œโ”€โ”€ tailwind.config.js  # Tailwind CSS configuration
โ”‚   โ”œโ”€โ”€ webpack.config.js   # Webpack configuration 
โ”‚   โ”œโ”€โ”€ package.json        # Metadata and scripts for the client-side
โ”‚   โ”œโ”€โ”€ package-lock.json   # Exact dependency versions for the client-side
โ”‚
โ”œโ”€โ”€ docs/                   # Documentation files for the project
โ”‚
โ”œโ”€โ”€ server/                 # Server-side code
โ”‚   โ”œโ”€โ”€ main/               # Main server-side logic (handling users and widget likes)
โ”‚   โ”œโ”€โ”€ widgets/            # Server-side logic for individual widgets
โ”‚   โ”‚   โ”œโ”€โ”€ 03/             # Widget 03 (Digital Footprint)
โ”‚   โ”‚   โ”œโ”€โ”€ 04/             # Widget 04 (Task Manager)
โ”‚   โ”‚   โ”œโ”€โ”€ 05/             # Widget 05 (Financial Market Monitor)
โ”‚   โ”‚   โ”œโ”€โ”€ 06/             # Widget 06 (Historical Lottery Search)
โ”‚   โ”‚   โ”œโ”€โ”€ 07/             # Widget 07 (GitHub Repository Visualizer)
โ”‚   โ”‚   โ”œโ”€โ”€ 08/             # Widget 08 (Community Bookmarks)
โ”‚   โ”œโ”€โ”€ _modelTemplate.js   # Template for server-side data models 
โ”‚
โ”œโ”€โ”€ .env                    # Environment variables for the server
โ”œโ”€โ”€ .eslintrc.js            # ESLint configuration for the server-side
โ”œโ”€โ”€ .gitignore              # Git ignore file to exclude certain files from version control
โ”œโ”€โ”€ .prettierignore         # Prettier ignore file to exclude certain files from formatting
โ”œโ”€โ”€ .prettierrc             # Prettier configuration for the server-side
โ”œโ”€โ”€ package.json            # Metadata and scripts for the server-side
โ”œโ”€โ”€ package-lock.json       # Exact dependency versions for the server-side
โ”œโ”€โ”€ Procfile                # Process file for Heroku deployment
โ”œโ”€โ”€ server.js               # Entry point for the server-side application
โ”‚
โ”œโ”€โ”€ LICENSE                 # License for the project
โ”œโ”€โ”€ README.md               # Project README (contains notes/screenshots about the widgets, structure, and more)

Webpack configuration for client-side code (client/webpack.config.js):

  • processes SCSS and PostCSS
  • bundles modular JavaScript
  • minifies CSS and JavaScript
  • configures HTML (meta tags, icons)
  • loads environment variables from .env
  • manages manifest.json for PWA support
  • optimizes images and saves them in assets/images with hashed filenames
  • splits JavaScript into chunks for better performance
  • outputs hashed filenames for JS and CSS to enable caching

Individual Widgets

Widget 01: About (README)

HTML Badge SCSS Badge

A card showcasing the purpose of the webpage with animated SVG logos of the technologies used, a GitHub activity grid of the creator, and links to source code and social media.

Widget 02: Calculator (README)

HTML Badge SCSS Badge JavaScript Badge Function Plot Badge Expr-Eval Badge HTML2Canvas Badge

A dual-mode calculator that can handle evaluating different arithmetic expressions and provides the ability to graph select functions, accessed through a minimalistic user interface. The calculator allows users to keep track of their previously inputted expressions and allows them to save a .png file of the calculator's display and history.

Widget 03: Digital Footprint (README)

HTML Badge SCSS Badge JavaScript Badge Node Badge Express Badge MapBox Badge IP API Badge

A mini dashboard that presents a user's digital footprint, including geographic location (obtained using their IP), browser details, operating system, and ISP information, all underscored by a dynamic map visualization for a quick and elegant overview of their online presence.

Widget 04: Task Tracker (README)

HTML Badge SCSS Badge JavaScript Badge Node Badge Express Badge Flatpickr Badge MongoDB Badge

A user-friendly to-do list widget that lets users manage tasks with priority tags, due dates, and quick actions like edit, delay, archive, or delete.

Widget 05: Financial Markets Monitor (README)

HTML Badge SCSS Badge JavaScript Badge Node Badge Express Badge MongoDB Badge OpenExchange Badge TwelveData Badge AlphaVantage Badge Chart.js Badge Google Favicon API Badge

A financial markets widget that delivers real-time currency exchange rates against USD and stock market data through interactive 7-day price history graphs, color-coded trend indicators, and detailed metrics for market monitoring.

Widget 06: Historical Lottery Search (README)

HTML Badge SCSS Badge JavaScript Badge Node Badge Express Badge MongoDB Badge AvoraTech Powerball Badge AvoraTech Megamillions Badge

A lottery analysis tool that helps players analyze historical Powerball and Mega Millions drawings, featuring quick number generation, detailed match statistics, and visual indicators to easily spot winning combinations - all searchable across 20+ years of drawing history.

Widget 07: GitHub Repository Search (README)

HTML Badge SCSS Badge HTML-to-Image Badge JavaScript Badge Node Badge Express Badge Octokit Badge

A GitHub repository visualization tool that generates cards displaying repository statistics and language breakdowns. Features include random repository discovery, search functionality, and PNG export capabilities.

Widget 08: Community Bookmarks (README)

HTML Badge SCSS Badge JavaScript Badge Node Badge Express Badge MongoDB Badge Cheerio Badge Google Safe Browsing Badge Natural Badge Leo-Profanity Badge Google Favicon Badge

A community-driven bookmark platform that processes submitted URLs to extract metadata, validate content safety, and generate topic tags. Features include community voting, automated metadata extraction, and content filtering to maintain a curated collection of high-quality web resources.

Available Scripts

Server-Side Development (Root / Directory)

  • npm run start:dev: starts the backend server and sets NODE_ENV variable to development (sets a different CORS origin so that requests can be made from the frontend development localhost)
  • npm run start: starts the backend server, used for production; sets NODE_ENV variable to production (sets a different CORS origin so that requests can be made from the hosted frontend)
  • npm run lint:server: check for code errors based on the .eslintrc.js config file
  • npm run lint:server:fix: automatically fix minor syntax errors identified by ESLint
  • npm run format:server: format the server-side code based on the .prettierrc config file

Client-Side Development (/client Directory):

  • npm run start: starts the development server with NODE_ENV variable set to development
  • npm run build: builds frontend for production with NODE_ENV variable set to production
  • npm run lint: check for code errors based on the .eslintrc.js config file
  • npm run lint:fix: automatically fix minor syntax errors identified by ESLint
  • npm run format: format client-side code based on the .prettierrc config file

License & Contributions

๐Ÿ“‘ This project is licensed under the GPL-3.0.

๐Ÿ‘‹๐Ÿผ Contributions for new widgets are always welcome.

About

๐Ÿ•น๏ธ A place to showcase a variety of independent widgets with different functionalities.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published