<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:media="http://search.yahoo.com/mrss/">
  <channel>
    <title>GitHub CSS Daily Trending</title>
    <description>Daily Trending of CSS in GitHub</description>
    <pubDate>Sun, 17 May 2026 01:35:35 GMT</pubDate>
    <link>http://mshibanami.github.io/GitHubTrendingRSS</link>
    
    <item>
      <title>thewhiteh4t/seeker</title>
      <link>https://github.com/thewhiteh4t/seeker</link>
      <description>&lt;p&gt;Accurately Locate Smartphones using Social Engineering&lt;/p&gt;&lt;hr&gt;&lt;p align=&quot;center&quot;&gt;&lt;img src=&quot;https://i.imgur.com/DIpuNTI.jpg&quot; /&gt;&lt;/p&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;a href=&quot;https://twitter.com/thewhiteh4t&quot;&gt; &lt;img src=&quot;https://img.shields.io/badge/-TWITTER-black?logo=twitter&amp;amp;style=for-the-badge&quot; /&gt; &lt;/a&gt; &amp;nbsp; &lt;a href=&quot;https://twc1rcle.com/&quot;&gt; &lt;img src=&quot;https://img.shields.io/badge/-THE WHITE CIRCLE-black?logo=&amp;amp;style=for-the-badge&quot; /&gt; &lt;/a&gt; &amp;nbsp; &lt;a href=&quot;https://thewhiteh4t.github.io/&quot;&gt; &lt;img src=&quot;https://img.shields.io/badge/-BLOG-black?logo=dialogflow&amp;amp;style=for-the-badge&quot; /&gt; &lt;/a&gt; &lt;/p&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;br /&gt; &lt;b&gt;Available in&lt;/b&gt; &lt;br /&gt; &lt;img src=&quot;https://i.imgur.com/1wJVDV5.png&quot; /&gt; &lt;/p&gt; 
&lt;p&gt; &lt;a style=&quot;margin-right: 10px;&quot; href=&quot;https://github.com/thewhiteh4t/seeker#installation&quot;&gt; &lt;img src=&quot;https://dabuttonfactory.com/button.png?t=INSTALL&amp;amp;f=Open+Sans&amp;amp;ts=15&amp;amp;tc=000&amp;amp;hp=25&amp;amp;vp=10&amp;amp;c=5&amp;amp;bgt=unicolored&amp;amp;bgc=00e2ff&quot; /&gt; &lt;/a&gt; &lt;a style=&quot;margin-right: 10px;&quot; href=&quot;https://github.com/thewhiteh4t/seeker#usage&quot;&gt; &lt;img src=&quot;https://dabuttonfactory.com/button.png?t=USAGE&amp;amp;f=Open+Sans&amp;amp;ts=15&amp;amp;tc=000&amp;amp;hp=25&amp;amp;vp=10&amp;amp;c=5&amp;amp;bgt=unicolored&amp;amp;bgc=00e2ff&quot; /&gt; &lt;/a&gt; &lt;a href=&quot;https://github.com/thewhiteh4t/seeker#demo&quot;&gt; &lt;img src=&quot;https://dabuttonfactory.com/button.png?t=DEMO&amp;amp;f=Open+Sans&amp;amp;ts=15&amp;amp;tc=000&amp;amp;hp=25&amp;amp;vp=10&amp;amp;c=5&amp;amp;bgt=unicolored&amp;amp;bgc=00e2ff&quot; /&gt; &lt;/a&gt; &lt;/p&gt; 
&lt;p&gt;Concept behind Seeker is simple, just like we host phishing pages to get credentials why not host a fake page that requests your location like many popular location based websites. Read more on &lt;a href=&quot;https://thewhiteh4t.github.io&quot;&gt; thewhiteh4t&#39;s Blog &lt;/a&gt;.Seeker Hosts a fake website which asks for Location Permission and if the target allows it, we can get :&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;Longitude&lt;/li&gt; 
 &lt;li&gt;Latitude&lt;/li&gt; 
 &lt;li&gt;Accuracy&lt;/li&gt; 
 &lt;li&gt;Altitude - Not always available&lt;/li&gt; 
 &lt;li&gt;Direction - Only available if user is moving&lt;/li&gt; 
 &lt;li&gt;Speed - Only available if user is moving&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;Along with Location Information we also get &lt;strong&gt;Device Information&lt;/strong&gt; without any permissions :&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;Unique ID using Canvas Fingerprinting&lt;/li&gt; 
 &lt;li&gt;Device Model - Not always available&lt;/li&gt; 
 &lt;li&gt;Operating System&lt;/li&gt; 
 &lt;li&gt;Platform&lt;/li&gt; 
 &lt;li&gt;Number of CPU Cores - Approximate Results&lt;/li&gt; 
 &lt;li&gt;Amount of RAM - Approximate Results&lt;/li&gt; 
 &lt;li&gt;Screen Resolution&lt;/li&gt; 
 &lt;li&gt;GPU information&lt;/li&gt; 
 &lt;li&gt;Browser Name and Version&lt;/li&gt; 
 &lt;li&gt;Public IP Address&lt;/li&gt; 
 &lt;li&gt;Local IP Address&lt;/li&gt; 
 &lt;li&gt;Local Port&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;&lt;strong&gt;Automatic IP Address Reconnaissance&lt;/strong&gt; is performed after the above information is received.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;This tool is a Proof of Concept and is for Educational Purposes Only, Seeker shows what data a malicious website can gather about you and your devices and why you should not click on random links and allow critical permissions such as Location etc.&lt;/strong&gt;&lt;/p&gt; 
&lt;h2&gt;How is this Different from IP GeoLocation&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt; &lt;p&gt;Other tools and services offer IP Geolocation which is NOT accurate at all and does not give location of the target instead it is the approximate location of the ISP.&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;Seeker uses HTML API and gets Location Permission and then grabs Longitude and Latitude using GPS Hardware which is present in the device, so Seeker works best with Smartphones, if the GPS Hardware is not present, such as on a Laptop, Seeker fallbacks to IP Geolocation or it will look for Cached Coordinates.&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;Generally if a user accepts location permsission, Accuracy of the information recieved is &lt;strong&gt;accurate to approximately 30 meters&lt;/strong&gt;&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;Accuracy depends on multiple factors which you may or may not control such as :&lt;/p&gt; 
  &lt;ul&gt; 
   &lt;li&gt;Device - Won&#39;t work on laptops or phones which have broken GPS&lt;/li&gt; 
   &lt;li&gt;Browser - Some browsers block javascripts&lt;/li&gt; 
   &lt;li&gt;GPS Calibration - If GPS is not calibrated you may get inaccurate results and this is very common&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;Templates&lt;/h2&gt; 
&lt;p&gt;Available Templates :&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;NearYou&lt;/li&gt; 
 &lt;li&gt;Google Drive (Suggested by @Akaal_no_one)&lt;/li&gt; 
 &lt;li&gt;WhatsApp (Suggested by @Dazmed707)&lt;/li&gt; 
 &lt;li&gt;Telegram&lt;/li&gt; 
 &lt;li&gt;Zoom (Made by @a7maadf)&lt;/li&gt; 
 &lt;li&gt;Google reCAPTCHA (Made by @MrEgyptian)&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;Create your own template ! Steps to let you create your template is described in this &lt;a href=&quot;https://raw.githubusercontent.com/thewhiteh4t/seeker/master/createTemplate.md&quot;&gt;how-to&lt;/a&gt;&lt;/p&gt; 
&lt;p&gt;Once your template is ready, &lt;strong&gt;do not forget to propose it to the community via a PR (pull request)&lt;/strong&gt;&lt;/p&gt; 
&lt;h2&gt;Tested On :&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt;Kali Linux&lt;/li&gt; 
 &lt;li&gt;BlackArch Linux&lt;/li&gt; 
 &lt;li&gt;Ubuntu&lt;/li&gt; 
 &lt;li&gt;Fedora&lt;/li&gt; 
 &lt;li&gt;Kali Nethunter&lt;/li&gt; 
 &lt;li&gt;Termux&lt;/li&gt; 
 &lt;li&gt;Parrot OS&lt;/li&gt; 
 &lt;li&gt;OSX - Monterey v.12.0.1&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;Installation&lt;/h2&gt; 
&lt;h3&gt;Kali Linux / Arch Linux / Ubuntu / Fedora / Parrot OS / Termux&lt;/h3&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;git clone https://github.com/thewhiteh4t/seeker.git
cd seeker/
chmod +x install.sh
./install.sh
&lt;/code&gt;&lt;/pre&gt; 
&lt;h3&gt;BlackArch Linux&lt;/h3&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo pacman -S seeker
&lt;/code&gt;&lt;/pre&gt; 
&lt;h3&gt;Docker&lt;/h3&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;docker pull thewhiteh4t/seeker
&lt;/code&gt;&lt;/pre&gt; 
&lt;h3&gt;OSX&lt;/h3&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;git clone https://github.com/thewhiteh4t/seeker.git
cd seeker/
python3 seeker.py
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;In order to run in tunnel mode, install ngrok by running this command in the terminal:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;brew install ngrok/ngrok/ngrok

ngrok http 8080
&lt;/code&gt;&lt;/pre&gt; 
&lt;h2&gt;Usage&lt;/h2&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;python3 seeker.py -h

usage: seeker.py [-h] [-k KML] [-p PORT] [-u] [-v] [-t TEMPLATE] [-d] [--telegram token:chatId] [--webhook WEBHOOK]

options:
  -h, --help                            show this help message and exit
  -k KML, --kml KML                     KML filename
  -p PORT, --port PORT                  Web server port [ Default : 8080 ]
  -u, --update                          Check for updates
  -v, --version                         Prints version
  -t TEMPLATE, --template TEMPLATE      Auto choose the template with the given index
  -d, --debugHTTP                       Disable auto http --&amp;gt; https redirection for testing purposes 
                                        (only works for the templates having index_temp.html file)
  --telegram                            Send info to a telegram bot, provide telegram token and chat to use
                                        format = token:chatId separated by a colon
  --webhook                             Send events to a webhook endpoint to be processed
                                        Note : endpoint must be unauthenticated and accept POST request

#########################
# Environment Variables #
#########################

Some of the options above can also be enabled via environment variables, to ease deployment.
Other parameters can be provided via environment variables to avoid interactive mode.

Variables:
  DEBUG_HTTP            Same as -d, --debugHTTP
  PORT                  Same as -p, --port
  TEMPLATE              Same as -t, --template
  TITLE                 Provide the group title or the page title
  REDIRECT              Provide the URL to redirect the user to, after the job is done
  IMAGE                 Provide the image to use, can either be remote (http or https) or local
                        Note : Remote image will be downloaded locally during the startup
  DESC                  Provide the description of the item (group or webpage depending on the template)
  SITENAME              Provide the name of the website
  DISPLAY_URL           Provide the URL to display on the page
  MEM_NUM               Provide the number of group membres (Telegram so far)
  ONLINE_NUM            Provide the number of the group online members (Telegram so far)
  TELEGRAM              Provide telegram token and chat to use to send info to a telegram bot
                        format = token:chatId separated by a colon
  WEBHOOK               Provide the webhook url to forward the events to 
                        Note : endpoint should be unauthenticated and accept POST method
                        

##################
# Usage Examples #
##################

# Step 1 : In first terminal
$ python3 seeker.py

# Step 2 : In second terminal start a tunnel service such as ngrok
$ ./ngrok http 8080

###########
# Options #
###########

# Ouput KML File for Google Earth
$ python3 seeker.py -k &amp;lt;filename&amp;gt;

# Use Custom Port
$ python3 seeker.py -p 1337
$ ./ngrok http 1337

# Pre-select a specific template
$ python3 seeker.py -t 1

################
# Docker Usage #
################

# Step 1
$ docker network create ngroknet

# Step 2
$ docker run --rm -it --net ngroknet --name seeker thewhiteh4t/seeker

# Step 3
$ docker run --rm -it --net ngroknet --name ngrok wernight/ngrok ngrok http seeker:8080
&lt;/code&gt;&lt;/pre&gt; 
&lt;h2&gt;Local Tunnels&lt;/h2&gt; 
&lt;p&gt;Use&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;ssh -R 80:localhost:8080 nokey@localhost.run
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;as an alterntive to ngrok&lt;/p&gt; 
&lt;h2&gt;Demo&lt;/h2&gt; 
&lt;p&gt;&lt;strong&gt;YouTube&lt;/strong&gt;&lt;/p&gt; 
&lt;a href=&quot;https://odysee.com/@thewhiteh4t:2/seeker_v126_demo:e&quot;&gt; &lt;img src=&quot;https://thumbnails.odycdn.com/optimize/s:1024:768/quality:85/plain/https://thumbs.odycdn.com/5ce9ed06e0ce8a995987dba0949dbc9a.webp&quot; /&gt; &lt;/a&gt;</description>
      
      <media:content url="https://repository-images.githubusercontent.com/141040549/6aa9c100-8153-11ea-9052-17796dfa5349" medium="image" />
      
    </item>
    
    <item>
      <title>spring-projects/spring-petclinic</title>
      <link>https://github.com/spring-projects/spring-petclinic</link>
      <description>&lt;p&gt;A sample Spring-based application&lt;/p&gt;&lt;hr&gt;&lt;h1&gt;Spring PetClinic Sample Application &lt;a href=&quot;https://github.com/spring-projects/spring-petclinic/actions/workflows/maven-build.yml&quot;&gt;&lt;img src=&quot;https://github.com/spring-projects/spring-petclinic/actions/workflows/maven-build.yml/badge.svg?sanitize=true&quot; alt=&quot;Build Status&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/spring-projects/spring-petclinic/actions/workflows/gradle-build.yml&quot;&gt;&lt;img src=&quot;https://github.com/spring-projects/spring-petclinic/actions/workflows/gradle-build.yml/badge.svg?sanitize=true&quot; alt=&quot;Build Status&quot; /&gt;&lt;/a&gt;&lt;/h1&gt; 
&lt;p&gt;&lt;a href=&quot;https://gitpod.io/#https://github.com/spring-projects/spring-petclinic&quot;&gt;&lt;img src=&quot;https://gitpod.io/button/open-in-gitpod.svg?sanitize=true&quot; alt=&quot;Open in Gitpod&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://github.com/codespaces/new?hide_repo_select=true&amp;amp;ref=main&amp;amp;repo=7517918&quot;&gt;&lt;img src=&quot;https://github.com/codespaces/badge.svg?sanitize=true&quot; alt=&quot;Open in GitHub Codespaces&quot; /&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;h2&gt;Understanding the Spring Petclinic application with a few diagrams&lt;/h2&gt; 
&lt;p&gt;See the presentation here:&lt;br /&gt; &lt;a href=&quot;https://speakerdeck.com/michaelisvy/spring-petclinic-sample-application?slide=20&quot;&gt;Spring Petclinic Sample Application (legacy slides)&lt;/a&gt;&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; These slides refer to a legacy, pre–Spring Boot version of Petclinic and may not reflect the current Spring Boot–based implementation.&lt;br /&gt; For up-to-date information, please refer to this repository and its documentation.&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;h2&gt;Run Petclinic locally&lt;/h2&gt; 
&lt;p&gt;Spring Petclinic is a &lt;a href=&quot;https://spring.io/guides/gs/spring-boot&quot;&gt;Spring Boot&lt;/a&gt; application built using &lt;a href=&quot;https://spring.io/guides/gs/maven/&quot;&gt;Maven&lt;/a&gt; or &lt;a href=&quot;https://spring.io/guides/gs/gradle/&quot;&gt;Gradle&lt;/a&gt;. Java 17 or later is required for the build, and the application can run with Java 17 or newer.&lt;/p&gt; 
&lt;p&gt;You first need to clone the project locally:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;git clone https://github.com/spring-projects/spring-petclinic.git
cd spring-petclinic
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;If you are using Maven, you can start the application on the command-line as follows:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;./mvnw spring-boot:run
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;With Gradle, the command is as follows:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;./gradlew bootRun
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;You can then access the Petclinic at &lt;a href=&quot;http://localhost:8080/&quot;&gt;http://localhost:8080/&lt;/a&gt;.&lt;/p&gt; 
&lt;img width=&quot;1042&quot; alt=&quot;petclinic-screenshot&quot; src=&quot;https://cloud.githubusercontent.com/assets/838318/19727082/2aee6d6c-9b8e-11e6-81fe-e889a5ddfded.png&quot; /&gt; 
&lt;p&gt;You can, of course, run Petclinic in your favorite IDE. See below for more details.&lt;/p&gt; 
&lt;h2&gt;Building a Container&lt;/h2&gt; 
&lt;p&gt;There is no &lt;code&gt;Dockerfile&lt;/code&gt; in this project. You can build a container image (if you have a docker daemon) using the Spring Boot build plugin:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;./mvnw spring-boot:build-image
&lt;/code&gt;&lt;/pre&gt; 
&lt;h2&gt;In case you find a bug/suggested improvement for Spring Petclinic&lt;/h2&gt; 
&lt;p&gt;Our issue tracker is available &lt;a href=&quot;https://github.com/spring-projects/spring-petclinic/issues&quot;&gt;here&lt;/a&gt;.&lt;/p&gt; 
&lt;h2&gt;Database configuration&lt;/h2&gt; 
&lt;p&gt;In its default configuration, Petclinic uses an in-memory database (H2) which gets populated at startup with data. The h2 console is exposed at &lt;code&gt;http://localhost:8080/h2-console&lt;/code&gt;, and it is possible to inspect the content of the database using the &lt;code&gt;jdbc:h2:mem:&amp;lt;uuid&amp;gt;&lt;/code&gt; URL. The UUID is printed at startup to the console.&lt;/p&gt; 
&lt;p&gt;A similar setup is provided for MySQL and PostgreSQL if a persistent database configuration is needed. Note that whenever the database type changes, the app needs to run with a different profile: &lt;code&gt;spring.profiles.active=mysql&lt;/code&gt; for MySQL or &lt;code&gt;spring.profiles.active=postgres&lt;/code&gt; for PostgreSQL. See the &lt;a href=&quot;https://docs.spring.io/spring-boot/how-to/properties-and-configuration.html#howto.properties-and-configuration.set-active-spring-profiles&quot;&gt;Spring Boot documentation&lt;/a&gt; for more detail on how to set the active profile.&lt;/p&gt; 
&lt;p&gt;You can start MySQL or PostgreSQL locally with whatever installer works for your OS or use docker:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;docker run -e MYSQL_USER=petclinic -e MYSQL_PASSWORD=petclinic -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=petclinic -p 3306:3306 mysql:9.6
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;or&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;docker run -e POSTGRES_USER=petclinic -e POSTGRES_PASSWORD=petclinic -e POSTGRES_DB=petclinic -p 5432:5432 postgres:18.3
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Further documentation is provided for &lt;a href=&quot;https://github.com/spring-projects/spring-petclinic/raw/main/src/main/resources/db/mysql/petclinic_db_setup_mysql.txt&quot;&gt;MySQL&lt;/a&gt; and &lt;a href=&quot;https://github.com/spring-projects/spring-petclinic/raw/main/src/main/resources/db/postgres/petclinic_db_setup_postgres.txt&quot;&gt;PostgreSQL&lt;/a&gt;.&lt;/p&gt; 
&lt;p&gt;Instead of vanilla &lt;code&gt;docker&lt;/code&gt; you can also use the provided &lt;code&gt;docker-compose.yml&lt;/code&gt; file to start the database containers. Each one has a service named after the Spring profile:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;docker compose up mysql
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;or&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;docker compose up postgres
&lt;/code&gt;&lt;/pre&gt; 
&lt;h2&gt;Test Applications&lt;/h2&gt; 
&lt;p&gt;At development time we recommend you use the test applications set up as &lt;code&gt;main()&lt;/code&gt; methods in &lt;code&gt;PetClinicIntegrationTests&lt;/code&gt; (using the default H2 database and also adding Spring Boot Devtools), &lt;code&gt;MySqlTestApplication&lt;/code&gt; and &lt;code&gt;PostgresIntegrationTests&lt;/code&gt;. These are set up so that you can run the apps in your IDE to get fast feedback and also run the same classes as integration tests against the respective database. The MySql integration tests use Testcontainers to start the database in a Docker container, and the Postgres tests use Docker Compose to do the same thing.&lt;/p&gt; 
&lt;h2&gt;Compiling the CSS&lt;/h2&gt; 
&lt;p&gt;There is a &lt;code&gt;petclinic.css&lt;/code&gt; in &lt;code&gt;src/main/resources/static/resources/css&lt;/code&gt;. It was generated from the &lt;code&gt;petclinic.scss&lt;/code&gt; source, combined with the &lt;a href=&quot;https://getbootstrap.com/&quot;&gt;Bootstrap&lt;/a&gt; library. If you make changes to the &lt;code&gt;scss&lt;/code&gt;, or upgrade Bootstrap, you will need to re-compile the CSS resources using the Maven profile &quot;css&quot;, i.e. &lt;code&gt;./mvnw package -P css&lt;/code&gt;. There is no build profile for Gradle to compile the CSS.&lt;/p&gt; 
&lt;h2&gt;Working with Petclinic in your IDE&lt;/h2&gt; 
&lt;h3&gt;Prerequisites&lt;/h3&gt; 
&lt;p&gt;The following items should be installed in your system:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;Java 17 or newer (full JDK, not a JRE)&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://help.github.com/articles/set-up-git&quot;&gt;Git command line tool&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;Your preferred IDE 
  &lt;ul&gt; 
   &lt;li&gt;Eclipse with the m2e plugin. Note: when m2e is available, there is a m2 icon in &lt;code&gt;Help -&amp;gt; About&lt;/code&gt; dialog. If m2e is not there, follow the installation process &lt;a href=&quot;https://www.eclipse.org/m2e/&quot;&gt;here&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://spring.io/tools&quot;&gt;Spring Tools Suite&lt;/a&gt; (STS)&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://www.jetbrains.com/idea/&quot;&gt;IntelliJ IDEA&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://code.visualstudio.com&quot;&gt;VS Code&lt;/a&gt;&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
&lt;/ul&gt; 
&lt;h3&gt;Steps&lt;/h3&gt; 
&lt;ol&gt; 
 &lt;li&gt; &lt;p&gt;On the command line run:&lt;/p&gt; &lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;git clone https://github.com/spring-projects/spring-petclinic.git
&lt;/code&gt;&lt;/pre&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;Inside Eclipse or STS:&lt;/p&gt; &lt;p&gt;Open the project via &lt;code&gt;File -&amp;gt; Import -&amp;gt; Maven -&amp;gt; Existing Maven project&lt;/code&gt;, then select the root directory of the cloned repo.&lt;/p&gt; &lt;p&gt;Then either build on the command line &lt;code&gt;./mvnw generate-resources&lt;/code&gt; or use the Eclipse launcher (right-click on project and &lt;code&gt;Run As -&amp;gt; Maven install&lt;/code&gt;) to generate the CSS. Run the application&#39;s main method by right-clicking on it and choosing &lt;code&gt;Run As -&amp;gt; Java Application&lt;/code&gt;.&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;Inside IntelliJ IDEA:&lt;/p&gt; &lt;p&gt;In the main menu, choose&amp;nbsp;&lt;code&gt;File -&amp;gt; Open&lt;/code&gt; and select the&amp;nbsp;Petclinic &lt;a href=&quot;https://raw.githubusercontent.com/spring-projects/spring-petclinic/main/pom.xml&quot;&gt;pom.xml&lt;/a&gt;. Click on the &lt;code&gt;Open&lt;/code&gt; button.&lt;/p&gt; 
  &lt;ul&gt; 
   &lt;li&gt; &lt;p&gt;CSS files are generated from the Maven build. You can build them on the command line &lt;code&gt;./mvnw generate-resources&lt;/code&gt; or right-click on the &lt;code&gt;spring-petclinic&lt;/code&gt; project then &lt;code&gt;Maven -&amp;gt; Generates sources and Update Folders&lt;/code&gt;.&lt;/p&gt; &lt;/li&gt; 
   &lt;li&gt; &lt;p&gt;A run configuration named &lt;code&gt;PetClinicApplication&lt;/code&gt; should have been created for you if you&#39;re using a recent Ultimate version. Otherwise, run the application by right-clicking on the &lt;code&gt;PetClinicApplication&lt;/code&gt; main class and choosing &lt;code&gt;Run &#39;PetClinicApplication&#39;&lt;/code&gt;.&lt;/p&gt; &lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;Navigate to the Petclinic&lt;/p&gt; &lt;p&gt;Visit &lt;a href=&quot;http://localhost:8080&quot;&gt;http://localhost:8080&lt;/a&gt; in your browser.&lt;/p&gt; &lt;/li&gt; 
&lt;/ol&gt; 
&lt;h2&gt;Looking for something in particular?&lt;/h2&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Spring Boot Configuration&lt;/th&gt; 
   &lt;th&gt;Class or Java property files&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;The Main Class&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/spring-projects/spring-petclinic/raw/main/src/main/java/org/springframework/samples/petclinic/PetClinicApplication.java&quot;&gt;PetClinicApplication&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Properties Files&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/spring-projects/spring-petclinic/raw/main/src/main/resources&quot;&gt;application.properties&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Caching&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/spring-projects/spring-petclinic/raw/main/src/main/java/org/springframework/samples/petclinic/system/CacheConfiguration.java&quot;&gt;CacheConfiguration&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;h2&gt;Interesting Spring Petclinic branches and forks&lt;/h2&gt; 
&lt;p&gt;The Spring Petclinic &quot;main&quot; branch in the &lt;a href=&quot;https://github.com/spring-projects/spring-petclinic&quot;&gt;spring-projects&lt;/a&gt; GitHub org is the &quot;canonical&quot; implementation based on Spring Boot and Thymeleaf. There are &lt;a href=&quot;https://spring-petclinic.github.io/docs/forks.html&quot;&gt;quite a few forks&lt;/a&gt; in the GitHub org &lt;a href=&quot;https://github.com/spring-petclinic&quot;&gt;spring-petclinic&lt;/a&gt;. If you are interested in using a different technology stack to implement the Pet Clinic, please join the community there.&lt;/p&gt; 
&lt;h2&gt;Interaction with other open-source projects&lt;/h2&gt; 
&lt;p&gt;One of the best parts about working on the Spring Petclinic application is that we have the opportunity to work in direct contact with many Open Source projects. We found bugs/suggested improvements on various topics such as Spring, Spring Data, Bean Validation and even Eclipse! In many cases, they&#39;ve been fixed/implemented in just a few days. Here is a list of them:&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Name&lt;/th&gt; 
   &lt;th&gt;Issue&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Spring JDBC: simplify usage of NamedParameterJdbcTemplate&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/spring-projects/spring-framework/issues/14889&quot;&gt;SPR-10256&lt;/a&gt; and &lt;a href=&quot;https://github.com/spring-projects/spring-framework/issues/14890&quot;&gt;SPR-10257&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Bean Validation / Hibernate Validator: simplify Maven dependencies and backward compatibility&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://hibernate.atlassian.net/browse/HV-790&quot;&gt;HV-790&lt;/a&gt; and &lt;a href=&quot;https://hibernate.atlassian.net/browse/HV-792&quot;&gt;HV-792&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Spring Data: provide more flexibility when working with JPQL queries&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/spring-projects/spring-data-jpa/issues/704&quot;&gt;DATAJPA-292&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;h2&gt;Contributing&lt;/h2&gt; 
&lt;p&gt;The &lt;a href=&quot;https://github.com/spring-projects/spring-petclinic/issues&quot;&gt;issue tracker&lt;/a&gt; is the preferred channel for bug reports, feature requests and submitting pull requests.&lt;/p&gt; 
&lt;p&gt;For pull requests, editor preferences are available in the &lt;a href=&quot;https://raw.githubusercontent.com/spring-projects/spring-petclinic/main/.editorconfig&quot;&gt;editor config&lt;/a&gt; for easy use in common text editors. Read more and download plugins at &lt;a href=&quot;https://editorconfig.org&quot;&gt;https://editorconfig.org&lt;/a&gt;. All commits must include a &lt;strong&gt;Signed-off-by&lt;/strong&gt; trailer at the end of each commit message to indicate that the contributor agrees to the Developer Certificate of Origin. For additional details, please refer to the blog post &lt;a href=&quot;https://spring.io/blog/2025/01/06/hello-dco-goodbye-cla-simplifying-contributions-to-spring&quot;&gt;Hello DCO, Goodbye CLA: Simplifying Contributions to Spring&lt;/a&gt;.&lt;/p&gt; 
&lt;h2&gt;License&lt;/h2&gt; 
&lt;p&gt;The Spring PetClinic sample application is released under version 2.0 of the &lt;a href=&quot;https://www.apache.org/licenses/LICENSE-2.0&quot;&gt;Apache License&lt;/a&gt;.&lt;/p&gt;</description>
      
      <media:content url="https://opengraph.githubassets.com/b2e63056a8716791faced16525a71399fb3ef71ea7d8bba4b1898c15f5aad35d/spring-projects/spring-petclinic" medium="image" />
      
    </item>
    
    <item>
      <title>hkhcoder/vprofile-project</title>
      <link>https://github.com/hkhcoder/vprofile-project</link>
      <description>&lt;h1&gt;Prerequisites&lt;/h1&gt; 
&lt;h1&gt;&lt;/h1&gt; 
&lt;ul&gt; 
 &lt;li&gt;JDK 17 or 21&lt;/li&gt; 
 &lt;li&gt;Maven 3.9&lt;/li&gt; 
 &lt;li&gt;MySQL 8&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h1&gt;Technologies&lt;/h1&gt; 
&lt;ul&gt; 
 &lt;li&gt;Spring MVC&lt;/li&gt; 
 &lt;li&gt;Spring Security&lt;/li&gt; 
 &lt;li&gt;Spring Data JPA&lt;/li&gt; 
 &lt;li&gt;Maven&lt;/li&gt; 
 &lt;li&gt;JSP&lt;/li&gt; 
 &lt;li&gt;Tomcat&lt;/li&gt; 
 &lt;li&gt;MySQL&lt;/li&gt; 
 &lt;li&gt;Memcached&lt;/li&gt; 
 &lt;li&gt;Rabbitmq&lt;/li&gt; 
 &lt;li&gt;ElasticSearch&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h1&gt;Database&lt;/h1&gt; 
&lt;p&gt;Here,we used Mysql DB sql dump file:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;/src/main/resources/db_backup.sql&lt;/li&gt; 
 &lt;li&gt;db_backup.sql file is a mysql dump file.we have to import this dump to mysql db server&lt;/li&gt; 
 &lt;li&gt; 
  &lt;blockquote&gt; 
   &lt;p&gt;mysql -u &amp;lt;user_name&amp;gt; -p accounts &amp;lt; db_backup.sql&lt;/p&gt; 
  &lt;/blockquote&gt; &lt;/li&gt; 
&lt;/ul&gt;</description>
      
      <media:content url="https://opengraph.githubassets.com/5b475fd011f9018b262680ed93fd219cb6222268f2182a48318d3ca67de00c20/hkhcoder/vprofile-project" medium="image" />
      
    </item>
    
    <item>
      <title>HackTricks-wiki/hacktricks</title>
      <link>https://github.com/HackTricks-wiki/hacktricks</link>
      <description>&lt;p&gt;Welcome to the page where you will find each trick/technique/whatever I have learnt in CTFs, real life apps, and reading researches and news.&lt;/p&gt;&lt;hr&gt;&lt;h1&gt;HackTricks&lt;/h1&gt; 
&lt;figure&gt;
 &lt;img src=&quot;https://raw.githubusercontent.com/HackTricks-wiki/hacktricks/master/images/hacktricks.gif&quot; alt=&quot;&quot; /&gt;
 &lt;figcaption&gt;&lt;/figcaption&gt;
&lt;/figure&gt; 
&lt;p&gt;&lt;em&gt;Hacktricks logos &amp;amp; motion design by&lt;/em&gt; &lt;a href=&quot;https://www.instagram.com/ppieranacho/&quot;&gt;&lt;em&gt;@ppieranacho&lt;/em&gt;&lt;/a&gt;&lt;em&gt;.&lt;/em&gt;&lt;/p&gt; 
&lt;h3&gt;Run HackTricks Locally&lt;/h3&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# Download latest version of hacktricks
git clone https://github.com/HackTricks-wiki/hacktricks

# Select the language you want to use
export LANG=&quot;master&quot; # Leave master for english
# &quot;af&quot; for Afrikaans
# &quot;de&quot; for German
# &quot;el&quot; for Greek
# &quot;es&quot; for Spanish
# &quot;fr&quot; for French
# &quot;hi&quot; for HindiP
# &quot;it&quot; for Italian
# &quot;ja&quot; for Japanese
# &quot;ko&quot; for Korean
# &quot;pl&quot; for Polish
# &quot;pt&quot; for Portuguese
# &quot;sr&quot; for Serbian
# &quot;sw&quot; for Swahili
# &quot;tr&quot; for Turkish
# &quot;uk&quot; for Ukrainian
# &quot;zh&quot; for Chinese

# Run the docker container indicating the path to the hacktricks folder
docker run -d --rm --platform linux/amd64 -p 3337:3000 --name hacktricks -v $(pwd)/hacktricks:/app ghcr.io/hacktricks-wiki/hacktricks-cloud/translator-image bash -c &quot;mkdir -p ~/.ssh &amp;amp;&amp;amp; ssh-keyscan -H github.com &amp;gt;&amp;gt; ~/.ssh/known_hosts &amp;amp;&amp;amp; cd /app &amp;amp;&amp;amp; git config --global --add safe.directory /app &amp;amp;&amp;amp; git checkout $LANG &amp;amp;&amp;amp; git pull &amp;amp;&amp;amp; MDBOOK_PREPROCESSOR__HACKTRICKS__ENV=dev mdbook serve --hostname 0.0.0.0&quot;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Your local copy of HackTricks will be &lt;strong&gt;available at &lt;a href=&quot;http://localhost:3337&quot;&gt;http://localhost:3337&lt;/a&gt;&lt;/strong&gt; after &amp;lt;5 minutes (it needs to build the book, be patient).&lt;/p&gt; 
&lt;h2&gt;Corporate Sponsors&lt;/h2&gt; 
&lt;h3&gt;&lt;a href=&quot;https://www.stmcyber.com&quot;&gt;STM Cyber&lt;/a&gt;&lt;/h3&gt; 
&lt;figure&gt;
 &lt;img src=&quot;images/stm (1).png&quot; alt=&quot;&quot; /&gt;
 &lt;figcaption&gt;&lt;/figcaption&gt;
&lt;/figure&gt; 
&lt;p&gt;&lt;a href=&quot;https://www.stmcyber.com&quot;&gt;&lt;strong&gt;STM Cyber&lt;/strong&gt;&lt;/a&gt; is a great cybersecurity company whose slogan is &lt;strong&gt;HACK THE UNHACKABLE&lt;/strong&gt;. They perform their own research and develop their own hacking tools to &lt;strong&gt;offer several valuable cybersecurity services&lt;/strong&gt; like pentesting, Red teams and training.&lt;/p&gt; 
&lt;p&gt;You can check their &lt;strong&gt;blog&lt;/strong&gt; in &lt;a href=&quot;https://blog.stmcyber.com&quot;&gt;&lt;strong&gt;https://blog.stmcyber.com&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;STM Cyber&lt;/strong&gt; also support cybersecurity open source projects like HackTricks 😃&lt;/p&gt; 
&lt;hr /&gt; 
&lt;h3&gt;&lt;a href=&quot;https://www.intigriti.com&quot;&gt;Intigriti&lt;/a&gt;&lt;/h3&gt; 
&lt;figure&gt;
 &lt;img src=&quot;images/image (47).png&quot; alt=&quot;&quot; /&gt;
 &lt;figcaption&gt;&lt;/figcaption&gt;
&lt;/figure&gt; 
&lt;p&gt;&lt;strong&gt;Intigriti&lt;/strong&gt; is the &lt;strong&gt;Europe&#39;s #1&lt;/strong&gt; ethical hacking and &lt;strong&gt;bug bounty platform.&lt;/strong&gt;&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;Bug bounty tip&lt;/strong&gt;: &lt;strong&gt;sign up&lt;/strong&gt; for &lt;strong&gt;Intigriti&lt;/strong&gt;, a premium &lt;strong&gt;bug bounty platform created by hackers, for hackers&lt;/strong&gt;! Join us at &lt;a href=&quot;https://go.intigriti.com/hacktricks&quot;&gt;&lt;strong&gt;https://go.intigriti.com/hacktricks&lt;/strong&gt;&lt;/a&gt; today, and start earning bounties up to &lt;strong&gt;$100,000&lt;/strong&gt;!&lt;/p&gt; 
&lt;p&gt;{{#ref}} &lt;a href=&quot;https://go.intigriti.com/hacktricks&quot;&gt;https://go.intigriti.com/hacktricks&lt;/a&gt; {{#endref}}&lt;/p&gt; 
&lt;hr /&gt; 
&lt;h3&gt;&lt;a href=&quot;https://bit.ly/3xrrDrL&quot;&gt;HACKENPROOF&lt;/a&gt;&lt;/h3&gt; 
&lt;figure&gt;
 &lt;img src=&quot;images/image (3).png&quot; alt=&quot;&quot; /&gt;
 &lt;figcaption&gt;&lt;/figcaption&gt;
&lt;/figure&gt; 
&lt;p&gt;Join &lt;a href=&quot;https://discord.com/invite/N3FrSbmwdy&quot;&gt;&lt;strong&gt;HackenProof Discord&lt;/strong&gt;&lt;/a&gt; server to communicate with experienced hackers and bug bounty hunters!&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Hacking Insights:&lt;/strong&gt; Engage with content that delves into the thrill and challenges of hacking&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Real-Time Hack News:&lt;/strong&gt; Keep up-to-date with fast-paced hacking world through real-time news and insights&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Latest Announcements:&lt;/strong&gt; Stay informed with the newest bug bounties launching and crucial platform updates&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;&lt;strong&gt;Join us on&lt;/strong&gt; &lt;a href=&quot;https://discord.com/invite/N3FrSbmwdy&quot;&gt;&lt;strong&gt;Discord&lt;/strong&gt;&lt;/a&gt; and start collaborating with top hackers today!&lt;/p&gt; 
&lt;hr /&gt; 
&lt;h3&gt;&lt;a href=&quot;https://modernsecurity.io/&quot;&gt;Modern Security – AI &amp;amp; Application Security Training Platform&lt;/a&gt;&lt;/h3&gt; 
&lt;figure&gt;
 &lt;img src=&quot;https://raw.githubusercontent.com/HackTricks-wiki/hacktricks/master/images/modern_security_logo.png&quot; alt=&quot;Modern Security&quot; /&gt;
 &lt;figcaption&gt;&lt;/figcaption&gt;
&lt;/figure&gt; 
&lt;p&gt;Modern Security delivers &lt;strong&gt;practical AI Security training&lt;/strong&gt; with an &lt;strong&gt;engineering-first, hands-on lab approach&lt;/strong&gt;. Our courses are built for security engineers, AppSec professionals, and developers who want to &lt;strong&gt;build, break, and secure real AI/LLM-powered applications&lt;/strong&gt;.&lt;/p&gt; 
&lt;p&gt;The &lt;strong&gt;AI Security Certification&lt;/strong&gt; focuses on real-world skills, including:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;Securing LLM and AI-powered applications&lt;/li&gt; 
 &lt;li&gt;Threat modeling for AI systems&lt;/li&gt; 
 &lt;li&gt;Embeddings, vector databases, and RAG security&lt;/li&gt; 
 &lt;li&gt;LLM attacks, abuse scenarios, and practical defenses&lt;/li&gt; 
 &lt;li&gt;Secure design patterns and deployment considerations&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;All courses are &lt;strong&gt;on-demand&lt;/strong&gt;, &lt;strong&gt;lab-driven&lt;/strong&gt;, and designed around &lt;strong&gt;real-world security tradeoffs&lt;/strong&gt;, not just theory.&lt;/p&gt; 
&lt;p&gt;👉 More details on the AI Security course:&lt;br /&gt; &lt;a href=&quot;https://www.modernsecurity.io/courses/ai-security-certification&quot;&gt;https://www.modernsecurity.io/courses/ai-security-certification&lt;/a&gt;&lt;/p&gt; 
&lt;p&gt;{{#ref}} &lt;a href=&quot;https://modernsecurity.io/&quot;&gt;https://modernsecurity.io/&lt;/a&gt; {{#endref}}&lt;/p&gt; 
&lt;hr /&gt; 
&lt;h3&gt;&lt;a href=&quot;https://serpapi.com/&quot;&gt;SerpApi&lt;/a&gt;&lt;/h3&gt; 
&lt;figure&gt;
 &lt;img src=&quot;images/image (1254).png&quot; alt=&quot;&quot; /&gt;
 &lt;figcaption&gt;&lt;/figcaption&gt;
&lt;/figure&gt; 
&lt;p&gt;&lt;strong&gt;SerpApi&lt;/strong&gt; offers fast and easy real-time APIs to &lt;strong&gt;access search engine results&lt;/strong&gt;. They scrape search engines, handle proxies, solve captchas, and parse all rich structured data for you.&lt;/p&gt; 
&lt;p&gt;A subscription to one of SerpApi’s plans includes access to over 50 different APIs for scraping different search engines, including Google, Bing, Baidu, Yahoo, Yandex, and more.&lt;br /&gt; Unlike other providers, &lt;strong&gt;SerpApi doesn’t just scrape organic results&lt;/strong&gt;. SerpApi responses consistently include all ads, inline images and videos, knowledge graphs, and other elements and features present in the search results.&lt;/p&gt; 
&lt;p&gt;Current SerpApi customers include &lt;strong&gt;Apple, Shopify, and GrubHub&lt;/strong&gt;.&lt;br /&gt; For more information check out their &lt;a href=&quot;https://serpapi.com/blog/&quot;&gt;&lt;strong&gt;blog&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;,&lt;/strong&gt; or try an example in their &lt;a href=&quot;https://serpapi.com/playground&quot;&gt;&lt;strong&gt;playground&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;br /&gt; You can &lt;strong&gt;create a free account&lt;/strong&gt; &lt;a href=&quot;https://serpapi.com/users/sign_up&quot;&gt;&lt;strong&gt;here&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/p&gt; 
&lt;hr /&gt; 
&lt;h3&gt;&lt;a href=&quot;https://academy.8ksec.io/&quot;&gt;8kSec Academy – In-Depth Mobile Security Courses&lt;/a&gt;&lt;/h3&gt; 
&lt;figure&gt;
 &lt;img src=&quot;images/image (2).png&quot; alt=&quot;&quot; /&gt;
 &lt;figcaption&gt;&lt;/figcaption&gt;
&lt;/figure&gt; 
&lt;p&gt;Learn the technologies and skills required to perform vulnerability research, penetration testing, and reverse engineering to protect mobile applications and devices. &lt;strong&gt;Master iOS and Android security&lt;/strong&gt; through our on-demand courses and &lt;strong&gt;get certified&lt;/strong&gt;:&lt;/p&gt; 
&lt;p&gt;{{#ref}} &lt;a href=&quot;https://academy.8ksec.io/&quot;&gt;https://academy.8ksec.io/&lt;/a&gt; {{#endref}}&lt;/p&gt; 
&lt;hr /&gt; 
&lt;h3&gt;&lt;a href=&quot;https://academy.8ksec.io/&quot;&gt;NaxusAI – AI Powered Security Scanner&lt;/a&gt;&lt;/h3&gt; 
&lt;figure&gt;
 &lt;img src=&quot;https://raw.githubusercontent.com/HackTricks-wiki/hacktricks/master/images/logo-naxus.png&quot; alt=&quot;&quot; /&gt;
 &lt;figcaption&gt;&lt;/figcaption&gt;
&lt;/figure&gt; 
&lt;p&gt;&lt;strong&gt;NaxusAI&lt;/strong&gt; is an AI-powered security platform to find exploitable vulnerabilities before attackers do.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;Code security tip&lt;/strong&gt;: sign up for NaxusAI, a smart vulnerability monitoring platform built for developers and security teams! Join us today and start using AI for &lt;strong&gt;detecting, validating, and fixing real security risks before they reach production&lt;/strong&gt;!&lt;/p&gt; 
&lt;p&gt;{{#ref}} &lt;a href=&quot;https://naxusai.com&quot;&gt;https://naxusai.com&lt;/a&gt; {{#endref}}&lt;/p&gt; 
&lt;hr /&gt; 
&lt;h3&gt;&lt;a href=&quot;https://websec.net/&quot;&gt;WebSec&lt;/a&gt;&lt;/h3&gt; 
&lt;figure&gt;
 &lt;img src=&quot;images/websec (1).svg&quot; alt=&quot;&quot; /&gt;
 &lt;figcaption&gt;&lt;/figcaption&gt;
&lt;/figure&gt; 
&lt;p&gt;&lt;a href=&quot;https://websec.net&quot;&gt;&lt;strong&gt;WebSec&lt;/strong&gt;&lt;/a&gt; is a professional cybersecurity company based in &lt;strong&gt;Amsterdam&lt;/strong&gt; which helps &lt;strong&gt;protecting&lt;/strong&gt; businesses &lt;strong&gt;all over the world&lt;/strong&gt; against the latest cybersecurity threats by providing &lt;strong&gt;offensive-security services&lt;/strong&gt; with a &lt;strong&gt;modern&lt;/strong&gt; approach.&lt;/p&gt; 
&lt;p&gt;WebSec is an intenational security company with offices in Amsterdam and Wyoming. They offer &lt;strong&gt;all-in-one security services&lt;/strong&gt; which means they do it all; Pentesting, &lt;strong&gt;Security&lt;/strong&gt; Audits, Awareness Trainings, Phishing Campagnes, Code Review, Exploit Development, Security Experts Outsourcing and much more.&lt;/p&gt; 
&lt;p&gt;Another cool thing about WebSec is that unlike the industry average WebSec is &lt;strong&gt;very confident in their skills&lt;/strong&gt;, to such an extent that they &lt;strong&gt;guarantee the best quality results&lt;/strong&gt;, it states on their website &quot;&lt;strong&gt;If we can&#39;t hack it, You don&#39;t pay it!&lt;/strong&gt;&quot;. For more info take a look at their &lt;a href=&quot;https://websec.net/en/&quot;&gt;&lt;strong&gt;website&lt;/strong&gt;&lt;/a&gt; and &lt;a href=&quot;https://websec.net/blog/&quot;&gt;&lt;strong&gt;blog&lt;/strong&gt;&lt;/a&gt;!&lt;/p&gt; 
&lt;p&gt;In addition to the above WebSec is also a &lt;strong&gt;committed supporter of HackTricks.&lt;/strong&gt;&lt;/p&gt; 
&lt;p&gt;{{#ref}} &lt;a href=&quot;https://www.youtube.com/watch?v=Zq2JycGDCPM&quot;&gt;https://www.youtube.com/watch?v=Zq2JycGDCPM&lt;/a&gt; {{#endref}}&lt;/p&gt; 
&lt;hr /&gt; 
&lt;h3&gt;&lt;a href=&quot;https://cyberhelmets.com/courses/?ref=hacktricks&quot;&gt;CyberHelmets&lt;/a&gt;&lt;/h3&gt; 
&lt;figure&gt;
 &lt;img src=&quot;https://raw.githubusercontent.com/HackTricks-wiki/hacktricks/master/images/cyberhelmets-logo.png&quot; alt=&quot;cyberhelmets logo&quot; /&gt;
 &lt;figcaption&gt;&lt;/figcaption&gt;
&lt;/figure&gt; 
&lt;p&gt;&lt;strong&gt;Built for the field. Built around you.&lt;/strong&gt;&lt;br /&gt; &lt;a href=&quot;https://cyberhelmets.com/?ref=hacktricks&quot;&gt;&lt;strong&gt;Cyber Helmets&lt;/strong&gt;&lt;/a&gt; develops and delivers effective cybersecurity training built and led by industry experts. Their programs go beyond theory to equip teams with deep understanding and actionable skills, using custom environments that reflect real-world threats. For custom training inquiries, reach out to us &lt;a href=&quot;https://cyberhelmets.com/tailor-made-training/?ref=hacktricks&quot;&gt;&lt;strong&gt;here&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;What sets their training apart:&lt;/strong&gt;&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;Custom-built content and labs&lt;/li&gt; 
 &lt;li&gt;Backed by top-tier tools and platforms&lt;/li&gt; 
 &lt;li&gt;Designed and taught by practitioners&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;{{#ref}} &lt;a href=&quot;https://cyberhelmets.com/courses/?ref=hacktricks&quot;&gt;https://cyberhelmets.com/courses/?ref=hacktricks&lt;/a&gt; {{#endref}}&lt;/p&gt; 
&lt;hr /&gt; 
&lt;h3&gt;&lt;a href=&quot;https://www.lasttowersolutions.com/&quot;&gt;Last Tower Solutions&lt;/a&gt;&lt;/h3&gt; 
&lt;figure&gt;
 &lt;img src=&quot;https://raw.githubusercontent.com/HackTricks-wiki/hacktricks/master/images/lasttower.png&quot; alt=&quot;lasttower logo&quot; /&gt;
 &lt;figcaption&gt;&lt;/figcaption&gt;
&lt;/figure&gt; 
&lt;p&gt;Last Tower Solutions delivers specialized cybersecurity services for &lt;strong&gt;Education&lt;/strong&gt; and &lt;strong&gt;FinTech&lt;/strong&gt; institutions, with a focus on &lt;strong&gt;penetration testing, cloud security assessments&lt;/strong&gt;, and &lt;strong&gt;compliance readiness&lt;/strong&gt; (SOC 2, PCI-DSS, NIST). Our team includes &lt;strong&gt;OSCP and CISSP certified professionals&lt;/strong&gt;, bringing deep technical expertise and industry-standard insight to every engagement.&lt;/p&gt; 
&lt;p&gt;We go beyond automated scans with &lt;strong&gt;manual, intelligence-driven testing&lt;/strong&gt; tailored to high-stakes environments. From securing student records to protecting financial transactions, we help organizations defend what matters most.&lt;/p&gt; 
&lt;p&gt;&lt;em&gt;“A quality defense requires knowing the offense, we provide security through understanding.”&lt;/em&gt;&lt;/p&gt; 
&lt;p&gt;Stay informed and up to date with the latest in cybersecurity by visiting our &lt;a href=&quot;https://www.lasttowersolutions.com/blog&quot;&gt;&lt;strong&gt;blog&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt; 
&lt;p&gt;{{#ref}} &lt;a href=&quot;https://www.lasttowersolutions.com/&quot;&gt;https://www.lasttowersolutions.com/&lt;/a&gt; {{#endref}}&lt;/p&gt; 
&lt;hr /&gt; 
&lt;h3&gt;&lt;a href=&quot;https://k8studio.io/&quot;&gt;K8Studio - The Smarter GUI to Manage Kubernetes.&lt;/a&gt;&lt;/h3&gt; 
&lt;figure&gt;
 &lt;img src=&quot;https://raw.githubusercontent.com/HackTricks-wiki/hacktricks/master/images/k8studio.png&quot; alt=&quot;k8studio logo&quot; /&gt;
 &lt;figcaption&gt;&lt;/figcaption&gt;
&lt;/figure&gt; 
&lt;p&gt;K8Studio IDE empowers DevOps, DevSecOps, and developers to manage, monitor, and secure Kubernetes clusters efficiently. Leverage our AI-driven insights, advanced security framework, and intuitive CloudMaps GUI to visualize your clusters, understand their state, and act with confidence.&lt;/p&gt; 
&lt;p&gt;Moreover, K8Studio is &lt;strong&gt;compatible with all major kubernetes distributions&lt;/strong&gt; (AWS, GCP, Azure, DO, Rancher, K3s, Openshift and more).&lt;/p&gt; 
&lt;p&gt;{{#ref}} &lt;a href=&quot;https://k8studio.io/&quot;&gt;https://k8studio.io/&lt;/a&gt; {{#endref}}&lt;/p&gt; 
&lt;hr /&gt; 
&lt;h2&gt;License &amp;amp; Disclaimer&lt;/h2&gt; 
&lt;p&gt;Check them in:&lt;/p&gt; 
&lt;p&gt;{{#ref}} welcome/hacktricks-values-and-faq.md {{#endref}}&lt;/p&gt; 
&lt;h2&gt;Github Stats&lt;/h2&gt; 
&lt;p&gt;&lt;img src=&quot;https://repobeats.axiom.co/api/embed/68f8746802bcf1c8462e889e6e9302d4384f164b.svg?sanitize=true&quot; alt=&quot;HackTricks Github Stats&quot; /&gt;&lt;/p&gt; 
&lt;p&gt;{{#include ./banners/hacktricks-training.md}}&lt;/p&gt;</description>
      
      <media:content url="https://opengraph.githubassets.com/0060a5f820d7a41b67994854f66046660a43a5177d5668e67a79ebc4c63e349d/HackTricks-wiki/hacktricks" medium="image" />
      
    </item>
    
    <item>
      <title>bradtraversy/50projects50days</title>
      <link>https://github.com/bradtraversy/50projects50days</link>
      <description>&lt;p&gt;50+ mini web projects using HTML, CSS &amp; JS&lt;/p&gt;&lt;hr&gt;&lt;h1&gt;50 Projects in 50 Days - HTML/CSS and JavaScript&lt;/h1&gt; 
&lt;p&gt;This is the main repository for all of the projects in the course.&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;https://www.traversymedia.com/50-Projects-In-50-Days&quot;&gt;Course Link&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th style=&quot;text-align:center&quot;&gt;#&lt;/th&gt; 
   &lt;th&gt;Project&lt;/th&gt; 
   &lt;th&gt;Live Demo&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;01&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/bradtraversy/50projects50days/tree/master/expanding-cards&quot;&gt;Expanding Cards&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://50projects50days.com/projects/expanding-cards/&quot;&gt;Live Demo&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;02&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/bradtraversy/50projects50days/tree/master/progress-steps&quot;&gt;Progress Steps&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://50projects50days.com/projects/progress-steps/&quot;&gt;Live Demo&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;03&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/bradtraversy/50projects50days/tree/master/rotating-nav-animation&quot;&gt;Rotating Navigation Animation&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://50projects50days.com/projects/rotating-navigation-animation/&quot;&gt;Live Demo&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;04&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/bradtraversy/50projects50days/tree/master/hidden-search&quot;&gt;Hidden Search Widget&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://50projects50days.com/projects/hidden-search-widget/&quot;&gt;Live Demo&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;05&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/bradtraversy/50projects50days/tree/master/blurry-loading&quot;&gt;Blurry Loading&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://50projects50days.com/projects/blurry-loading/&quot;&gt;Live Demo&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;06&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/bradtraversy/50projects50days/tree/master/scroll-animation&quot;&gt;Scroll Animation&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://50projects50days.com/projects/scroll-animation/&quot;&gt;Live Demo&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;07&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/bradtraversy/50projects50days/tree/master/split-landing-page&quot;&gt;Split Landing Page&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://50projects50days.com/projects/split-landing-page/&quot;&gt;Live Demo&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;08&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/bradtraversy/50projects50days/tree/master/form-input-wave&quot;&gt;Form Wave&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://50projects50days.com/projects/form-wave/&quot;&gt;Live Demo&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;09&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/bradtraversy/50projects50days/tree/master/sound-board&quot;&gt;Sound Board&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://50projects50days.com/projects/sound-board/&quot;&gt;Live Demo&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;10&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/bradtraversy/50projects50days/tree/master/dad-jokes&quot;&gt;Dad Jokes&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://50projects50days.com/projects/dad-jokes/&quot;&gt;Live Demo&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;11&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/bradtraversy/50projects50days/tree/master/event-keycodes&quot;&gt;Event Keycodes&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://50projects50days.com/projects/event-keycodes/&quot;&gt;Live Demo&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;12&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/bradtraversy/50projects50days/tree/master/faq-collapse&quot;&gt;Faq Collapse&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://50projects50days.com/projects/faq-collapse/&quot;&gt;Live Demo&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;13&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/bradtraversy/50projects50days/tree/master/random-choice-picker&quot;&gt;Random Choice Picker&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://50projects50days.com/projects/random-choice-picker/&quot;&gt;Live Demo&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;14&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/bradtraversy/50projects50days/tree/master/animated-navigation&quot;&gt;Animated Navigation&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://50projects50days.com/projects/animated-navigation/&quot;&gt;Live Demo&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;15&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/bradtraversy/50projects50days/tree/master/incrementing-counter&quot;&gt;Incrementing Counter&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://50projects50days.com/projects/incrementing-counter/&quot;&gt;Live Demo&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;16&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/bradtraversy/50projects50days/tree/master/drink-water&quot;&gt;Drink Water&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://50projects50days.com/projects/drink-water/&quot;&gt;Live Demo&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;17&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/bradtraversy/50projects50days/tree/master/movie-app&quot;&gt;Movie App&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://50projects50days.com/projects/movie-app/&quot;&gt;Live Demo&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;18&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/bradtraversy/50projects50days/tree/master/background-slider&quot;&gt;Background Slider&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://50projects50days.com/projects/background-slider/&quot;&gt;Live Demo&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;19&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/bradtraversy/50projects50days/tree/master/theme-clock&quot;&gt;Theme Clock&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://50projects50days.com/projects/theme-clock/&quot;&gt;Live Demo&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;20&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/bradtraversy/50projects50days/tree/master/button-ripple-effect&quot;&gt;Button Ripple Effect&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://50projects50days.com/projects/button-ripple-effect/&quot;&gt;Live Demo&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;21&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/bradtraversy/50projects50days/tree/master/drag-n-drop&quot;&gt;Drag N Drop&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://50projects50days.com/projects/drag-n-drop/&quot;&gt;Live Demo&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;22&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/bradtraversy/50projects50days/tree/master/drawing-app&quot;&gt;Drawing App&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://50projects50days.com/projects/drawing-app/&quot;&gt;Live Demo&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;23&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/bradtraversy/50projects50days/tree/master/kinetic-loader&quot;&gt;Kinetic Loader&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://50projects50days.com/projects/kinetic-loader/&quot;&gt;Live Demo&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;24&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/bradtraversy/50projects50days/tree/master/content-placeholder&quot;&gt;Content Placeholder&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://50projects50days.com/projects/content-placeholder/&quot;&gt;Live Demo&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;25&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/bradtraversy/50projects50days/tree/master/sticky-navigation&quot;&gt;Sticky Navbar&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://50projects50days.com/projects/sticky-navbar/&quot;&gt;Live Demo&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;26&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/bradtraversy/50projects50days/tree/master/double-vertical-slider&quot;&gt;Double Vertical Slider&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://50projects50days.com/projects/double-vertical-slider/&quot;&gt;Live Demo&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;27&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/bradtraversy/50projects50days/tree/master/toast-notification&quot;&gt;Toast Notification&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://50projects50days.com/projects/toast-notification/&quot;&gt;Live Demo&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;28&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/bradtraversy/50projects50days/tree/master/github-profiles&quot;&gt;Github Profiles&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://50projects50days.com/projects/github-profiles/&quot;&gt;Live Demo&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;29&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/bradtraversy/50projects50days/tree/master/double-click-heart&quot;&gt;Double Click Heart&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://50projects50days.com/projects/double-click-heart/&quot;&gt;Live Demo&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;30&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/bradtraversy/50projects50days/tree/master/auto-text-effect&quot;&gt;Auto Text Effect&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://50projects50days.com/projects/auto-text-effect/&quot;&gt;Live Demo&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;31&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/bradtraversy/50projects50days/tree/master/password-generator&quot;&gt;Password Generator&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://50projects50days.com/projects/password-generator/&quot;&gt;Live Demo&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;32&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/bradtraversy/50projects50days/tree/master/good-cheap-fast&quot;&gt;Good Cheap Fast&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://50projects50days.com/projects/good-cheap-fast/&quot;&gt;Live Demo&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;33&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/bradtraversy/50projects50days/tree/master/notes-app&quot;&gt;Notes App&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://50projects50days.com/projects/notes-app/&quot;&gt;Live Demo&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;34&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/bradtraversy/50projects50days/tree/master/animated-countdown&quot;&gt;Animated Countdown&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://50projects50days.com/projects/animated-countdown/&quot;&gt;Live Demo&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;35&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/bradtraversy/50projects50days/tree/master/image-carousel&quot;&gt;Image Carousel&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://50projects50days.com/projects/image-carousel/&quot;&gt;Live Demo&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;36&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/bradtraversy/50projects50days/tree/master/hoverboard&quot;&gt;Hoverboard&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://50projects50days.com/projects/hoverboard/&quot;&gt;Live Demo&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;37&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/bradtraversy/50projects50days/tree/master/pokedex&quot;&gt;Pokedex&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://50projects50days.com/projects/pokedex/&quot;&gt;Live Demo&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;38&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/bradtraversy/50projects50days/tree/master/mobile-tab-navigation&quot;&gt;Mobile Tab Navigation&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://50projects50days.com/projects/mobile-tab-navigation/&quot;&gt;Live Demo&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;39&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/bradtraversy/50projects50days/tree/master/password-strength-background&quot;&gt;Password Strength Background&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://50projects50days.com/projects/password-strength-background/&quot;&gt;Live Demo&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;40&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/bradtraversy/50projects50days/tree/master/3d-boxes-background&quot;&gt;3d Background Boxes&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://50projects50days.com/projects/3d-background-boxes/&quot;&gt;Live Demo&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;41&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/bradtraversy/50projects50days/tree/master/verify-account-ui&quot;&gt;Verify Account Ui&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://50projects50days.com/projects/verify-account-ui/&quot;&gt;Live Demo&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;42&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/bradtraversy/50projects50days/tree/master/live-user-filter&quot;&gt;Live User Filter&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://50projects50days.com/projects/live-user-filter/&quot;&gt;Live Demo&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;43&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/bradtraversy/50projects50days/tree/master/feedback-ui-design&quot;&gt;Feedback Ui Design&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://50projects50days.com/projects/feedback-ui-design/&quot;&gt;Live Demo&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;44&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/bradtraversy/50projects50days/tree/master/custom-range-slider&quot;&gt;Custom Range Slider&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://50projects50days.com/projects/custom-range-slider/&quot;&gt;Live Demo&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;45&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/bradtraversy/50projects50days/tree/master/netflix-mobile-navigation&quot;&gt;Netflix Mobile Navigation&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://50projects50days.com/projects/netflix-mobile-navigation/&quot;&gt;Live Demo&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;46&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/bradtraversy/50projects50days/tree/master/quiz-app&quot;&gt;Quiz App&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://50projects50days.com/projects/quiz-app/&quot;&gt;Live Demo&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;47&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/bradtraversy/50projects50days/tree/master/testimonial-box-switcher&quot;&gt;Testimonial Box Switcher&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://50projects50days.com/projects/testimonial-box-switcher/&quot;&gt;Live Demo&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;48&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/bradtraversy/50projects50days/tree/master/random-image-generator&quot;&gt;Random Image Feed&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://50projects50days.com/projects/random-image-feed/&quot;&gt;Live Demo&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;49&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/bradtraversy/50projects50days/tree/master/todo-list&quot;&gt;Todo List&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://50projects50days.com/projects/todo-list/&quot;&gt;Live Demo&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;50&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/bradtraversy/50projects50days/tree/master/insect-catch-game&quot;&gt;Insect Catch Game&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://50projects50days.com/projects/insect-catch-game/&quot;&gt;Live Demo&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;51&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/bradtraversy/50projects50days/tree/master/simple-timer&quot;&gt;Simple Timer&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://50projects50days.com/projects/simple-timer/&quot;&gt;Live Demo&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;&lt;strong&gt;NOTE ON PULL REQUESTS&lt;/strong&gt;: All of these projects are part of the course. While I do appreciate people trying to make some things prettier or adding new features, we are only accepting pull requests and looking at issues for bug fixes so that the code stays inline with the course&lt;/p&gt; 
&lt;h2&gt;License&lt;/h2&gt; 
&lt;p&gt;The MIT License&lt;/p&gt; 
&lt;p&gt;Copyright (c) 2020-2021 Traversy Media &lt;a href=&quot;https://traversymedia.com&quot;&gt;https://traversymedia.com&lt;/a&gt;&lt;/p&gt; 
&lt;p&gt;Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the &quot;Software&quot;), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:&lt;/p&gt; 
&lt;p&gt;The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.&lt;/p&gt; 
&lt;p&gt;🔹 Software Disclaimer 🔹&lt;/p&gt; 
&lt;p&gt;🛠️ Provided &quot;As Is&quot; – No guarantees, use at your own risk. 📜 No Warranty – No promises on performance or fitness for any purpose. ⚖️ No Liability – Authors aren&#39;t responsible for any damages or claims. 🔄 Use Freely – But at your own discretion and responsibility.&lt;/p&gt; 
&lt;p&gt;🚀 In short: Use it, but don’t blame us! 😃&lt;/p&gt;</description>
      
      <media:content url="https://opengraph.githubassets.com/0bb77d8930788311df2da9cce7e651726b26f889bcbee2663598a62e7f3e3062/bradtraversy/50projects50days" medium="image" />
      
    </item>
    
    <item>
      <title>ayusharma/birthday</title>
      <link>https://github.com/ayusharma/birthday</link>
      <description>&lt;p&gt;A Happy Birthday animation design in CSS3, HTML5&lt;/p&gt;&lt;hr&gt;&lt;p&gt;Happy Birthday&lt;/p&gt; 
&lt;p&gt;A Happy Birthday animation design in CSS3, HTML5.&lt;/p&gt; 
&lt;p&gt;URL: &lt;a href=&quot;http://ayusharma.github.io/birthday/&quot;&gt;http://ayusharma.github.io/birthday/&lt;/a&gt;&lt;/p&gt; 
&lt;p&gt;Technology Used: HTML5 CSS3 jQuery GNU/Linux Digital Ocean as VPS GIMP&lt;/p&gt; 
&lt;h1&gt;Setup&lt;/h1&gt; 
&lt;h2&gt;If you have python installed:&lt;/h2&gt; 
&lt;pre&gt;&lt;code&gt;cd Birthday
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&amp;amp;&amp;amp;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;python -m SimpleHTTPServer --port  8081
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;visit &lt;a href=&quot;http://localhost:8081&quot;&gt;http://localhost:8081&lt;/a&gt; in your browser.&lt;/p&gt; 
&lt;h2&gt;If you have nodejs installed&lt;/h2&gt; 
&lt;pre&gt;&lt;code&gt;npm install
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&amp;amp;&amp;amp;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;npm run server-node
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;visit &lt;a href=&quot;http://localhost:8081&quot;&gt;http://localhost:8081&lt;/a&gt; in your browser.&lt;/p&gt;</description>
      
      <media:content url="https://opengraph.githubassets.com/c902e05495b7afbd6a89b9aeaf061b722d4c371bd622113174cccd6b5a2e5e7f/ayusharma/birthday" medium="image" />
      
    </item>
    
    <item>
      <title>adobe/adobe.github.com</title>
      <link>https://github.com/adobe/adobe.github.com</link>
      <description>&lt;p&gt;Adobe central hub for open source&lt;/p&gt;&lt;hr&gt;&lt;h1&gt;&lt;a href=&quot;http://adobe.github.com&quot;&gt;Adobe Open Source&lt;/a&gt;&lt;/h1&gt; 
&lt;p&gt;Presenting &lt;a href=&quot;http://adobe.github.com&quot;&gt;Adobe GitHub Homepage v2.0&lt;/a&gt;, the new central hub for &lt;strong&gt;Adobe Open sources&lt;/strong&gt; projects.&lt;/p&gt; 
&lt;p&gt;Allowing you to &lt;strong&gt;search through Adobe GitHub repositories&lt;/strong&gt;, you can focus on what you are really passionate about.&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;Are you a &lt;em&gt;web developer&lt;/em&gt;? Search the repositories only containing &lt;em&gt;Javascript&lt;/em&gt; code, because it rocks!&lt;/li&gt; 
 &lt;li&gt;Love doing &lt;em&gt;technology watching&lt;/em&gt;? Order by &lt;em&gt;Popularity&lt;/em&gt;, by &lt;em&gt;Last Push&lt;/em&gt; or select only the &lt;em&gt;5 stars (&amp;gt;1k followers)&lt;/em&gt; projects to get the hottest repos!&lt;/li&gt; 
 &lt;li&gt;Are you a &lt;em&gt;web designer&lt;/em&gt; and want the perfect code editor? Search &lt;em&gt;brackets&lt;/em&gt; and get all the repositories related to this awesome project!&lt;/li&gt; 
 &lt;li&gt;Are you a &lt;em&gt;researcher&lt;/em&gt;? Check out the project pushed in Open Source by the &lt;em&gt;Adobe Research&lt;/em&gt; organization!&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h4 align=&quot;center&quot;&gt; Adobe + Open Source = ♥ &lt;/h4&gt; 
&lt;p&gt;That&#39;s why we built this project on top of cutting-edge technologies like:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;http://angularjs.org/&quot;&gt;AngularJS&lt;/a&gt;,&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;http://foundation.zurb.com/&quot;&gt;Foundation&lt;/a&gt;,&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;http://pages.github.com/&quot;&gt;Github Pages&lt;/a&gt; and &lt;a href=&quot;http://developer.github.com/v3/&quot;&gt;API&lt;/a&gt;,&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;http://nodejs.org&quot;&gt;NodeJS&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;http://d3js.org/&quot;&gt;D3&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;and many more!&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;The &lt;a href=&quot;http://www.adobe.com/products/creativecloud.html&quot;&gt;Adobe Creative Cloud&lt;/a&gt; is also a great asset for &lt;a href=&quot;http://photoshop.com&quot;&gt;designing&lt;/a&gt; and &lt;a href=&quot;http://brackets.io&quot;&gt;coding&lt;/a&gt; purposes.&lt;/p&gt; 
&lt;h2&gt;Be in touch!&lt;/h2&gt; 
&lt;p&gt;We hope you love this new homepage. Any feedback, ideas or bugfixes are very much welcome. Here is the &lt;a href=&quot;https://trello.com/b/eLlfvaVe/adobe-github-com&quot;&gt;Trello board&lt;/a&gt; on which you can add your ideas. You can also check out the &lt;a href=&quot;https://github.com/adobe/adobe.github.com/wiki&quot;&gt;wiki page&lt;/a&gt; to know how to update the page easily.&lt;/p&gt; 
&lt;p&gt;All this seems interesting to you? Want to start contributing to the web with Adobe?&lt;/p&gt; 
&lt;h4 align=&quot;center&quot;&gt;&lt;a href=&quot;http://www.adobe.com/careers.html&quot; target=&quot;_blank&quot;&gt;Join the team!&lt;/a&gt;&lt;/h4&gt; 
&lt;h2&gt;Architecture&lt;/h2&gt; 
&lt;p&gt;Hummm... want to learn more about how all this is structured? A good sketch is better than a long speech, so here is a little schema:&lt;/p&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;img src=&quot;https://raw.github.com/adobe/adobe.github.com/master/img/schema_adobe_open_source.png&quot; alt=&quot;Adobe Open Source schema&quot; /&gt;&lt;/p&gt; 
&lt;p&gt;The information is pulled directly from the &lt;a href=&quot;http://developer.github.com/v3/&quot;&gt;Github API&lt;/a&gt; and aggregated by a &lt;a href=&quot;http://nodejs.org&quot;&gt;NodeJS&lt;/a&gt; server (its code source is available &lt;a href=&quot;https://github.com/adobe/server.adobe.github.com&quot;&gt;in this repository&lt;/a&gt;). It is available through an simple REST API, thanks to &lt;a href=&quot;http://mcavage.me/node-restify/&quot;&gt;restify&lt;/a&gt;.&lt;/p&gt; 
&lt;p&gt;&lt;a href=&quot;http://angularjs.org/&quot;&gt;AngularJS&lt;/a&gt; then makes a unique API call to the server and inject the data on your browser, based on the &lt;a href=&quot;http://foundation.zurb.com/&quot;&gt;Foundation&lt;/a&gt; CSS framework and using &lt;a href=&quot;http://nickqizhu.github.io/dc.js/&quot;&gt;dc.js&lt;/a&gt; for the graphs. The filtering engine for the repositories was built on top of Angular.&lt;/p&gt; 
&lt;h2&gt;Deploying Locally&lt;/h2&gt; 
&lt;p&gt;Install local web server globally&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;npm i -g local-web-server
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Run &lt;code&gt;ws&lt;/code&gt; command in your terminal in the root of this project to lauch a local web server showing the site&lt;/p&gt; 
&lt;p&gt;Site should be running on &lt;code&gt;http://localhost:8000/&lt;/code&gt;&lt;/p&gt;</description>
      
      <media:content url="https://opengraph.githubassets.com/eeed52dd176e9c6e6824d2036906346d739c679aa7ab158cc03cbf3b9a2ff7ac/adobe/adobe.github.com" medium="image" />
      
    </item>
    
    <item>
      <title>adobe/spectrum-css</title>
      <link>https://github.com/adobe/spectrum-css</link>
      <description>&lt;p&gt;The standard CSS implementation of the Spectrum design language.&lt;/p&gt;&lt;hr&gt;&lt;div align=&quot;right&quot;&gt; 
 &lt;p&gt;&lt;img src=&quot;https://img.shields.io/github/actions/workflow/status/adobe/spectrum-css/production.yml?branch=main&amp;amp;style=for-the-badge&amp;amp;label=main&quot; alt=&quot;GitHub Actions build status on main&quot; /&gt; &lt;br /&gt; &lt;img src=&quot;https://img.shields.io/github/actions/workflow/status/adobe/spectrum-css/production.yml?branch=spectrum-two&amp;amp;style=for-the-badge&amp;amp;label=spectrum-two&quot; alt=&quot;GitHub Actions build status on spectrum-two&quot; /&gt;&lt;/p&gt; 
&lt;/div&gt; 
&lt;h1 align=&quot;center&quot;&gt;Spectrum CSS&lt;/h1&gt; 
&lt;h3 align=&quot;center&quot;&gt;A CSS-implementation of the Spectrum design language&lt;/h3&gt; 
&lt;img src=&quot;https://raw.githubusercontent.com/adobe/spectrum-css/main/.storybook/assets/images/spectrum-css_illustration_desktop.png&quot; /&gt; 
&lt;h2&gt;Features&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt;📖 &lt;strong&gt;Robust documentation&lt;/strong&gt;: Spectrum CSS is designed to be used in partnership with &lt;a href=&quot;https://spectrum.adobe.com/&quot;&gt;Spectrum&#39;s detailed usage guidelines&lt;/a&gt;.&lt;/li&gt; 
 &lt;li&gt;🎨 &lt;strong&gt;Flexible&lt;/strong&gt;: Our CSS is customizable, powerful, and designed to work with any JavaScript framework.&lt;/li&gt; 
 &lt;li&gt;🧪 &lt;strong&gt;Rigorously tested&lt;/strong&gt;: These individually-versioned components have been vetted to be accessible and inclusive of global audiences.&lt;/li&gt; 
 &lt;li&gt;📱 &lt;strong&gt;Multi-platform support&lt;/strong&gt;: We support &lt;a href=&quot;https://github.com/adobe/spectrum-css?tab=readme-ov-file#browser-support&quot;&gt;evergreen browsers&lt;/a&gt; for scalability and flexibility.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href=&quot;https://opensource.adobe.com/spectrum-css/get-started.html&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/Get%20started-F0F0F0?style=for-the-badge&amp;amp;logo=adobe&amp;amp;logoColor=%23FF0000&quot; /&gt;&lt;/a&gt; &amp;nbsp; &lt;a href=&quot;https://opensource.adobe.com/spectrum-css/&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/Storybook-F0F0F0?style=for-the-badge&amp;amp;logo=storybook&amp;amp;logoColor=%23FF4785&quot; /&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;h2&gt;Using Spectrum CSS&lt;/h2&gt; 
&lt;p&gt;The preferred method of using Spectrum CSS relies on custom properties to swap out variables for different themes and contexts. This results in the lowest bundle sizes and is one of the simpler approaches.&lt;/p&gt; 
&lt;p&gt;Want to get a component up and running as soon as possible? Check out the &lt;a href=&quot;https://github.com/adobe/spectrum-css/raw/main/.github/QUICK-START.md&quot;&gt;quick start guide&lt;/a&gt;.&lt;/p&gt; 
&lt;h3&gt;Functionality&lt;/h3&gt; 
&lt;p&gt;Spectrum CSS is CSS-only, implementing only the interactivity that can be done with pure CSS. We do include some lightweight JS-based interaction for demonstration purposes only in our &lt;a href=&quot;https://opensource.adobe.com/spectrum-css/&quot;&gt;Storybook&lt;/a&gt;. Spectrum CSS should only be used by implementations of Spectrum, or very simple applications that only need things like typography, checkboxes, text fields, etc.&lt;/p&gt; 
&lt;p&gt;Adobe maintains separate libraries written with &lt;a href=&quot;https://opensource.adobe.com/spectrum-web-components/&quot;&gt;web components&lt;/a&gt; and &lt;a href=&quot;https://react-spectrum.adobe.com/react-spectrum/index.html&quot;&gt;React&lt;/a&gt; that work in partnership with Spectrum CSS to create fully interactive Spectrum components.&lt;/p&gt; 
&lt;p&gt;The &lt;a href=&quot;https://opensource.adobe.com/spectrum-web-components/&quot;&gt;Spectrum Web Components&lt;/a&gt; library directly imports Spectrum CSS and optimizes it for use with web components.&lt;/p&gt; 
&lt;h3&gt;Installing components&lt;/h3&gt; 
&lt;p&gt;Each component is released on npm as a separate, individually versioned package inside of the &lt;a href=&quot;https://www.npmjs.com/org/spectrum-css&quot;&gt;@spectrum-css&lt;/a&gt; org.&lt;/p&gt; 
&lt;p&gt;To incorporate Spectrum CSS into your project, you install the components you need along with any peer dependencies you need for your implementation. Most peer dependencies are optional and can bring additional features when installed along with a component. For example a button can be rendered with or without an icon; so if your use-case leverages an icon with your button, you&#39;ll want to install icon as a peer dependency.&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-shell&quot;&gt;yarn add -DW @spectrum-css/tokens @spectrum-css/typography @spectrum-css/page @spectrum-css/icon @spectrum-css/button
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Installed components will be available in the &lt;code&gt;node_modules/@spectrum-css/&lt;/code&gt; folder of your project.&lt;/p&gt; 
&lt;p&gt;All components in this library have a peer dependency on &lt;a href=&quot;https://raw.githubusercontent.com/adobe/spectrum-css/main/tokens&quot;&gt;&lt;code&gt;@spectrum-css/tokens&lt;/code&gt;&lt;/a&gt;, which is a local package that serves up the &lt;a href=&quot;https://github.com/adobe/spectrum-tokens&quot;&gt;Spectrum design tokens&lt;/a&gt; as CSS custom properties (via &lt;a href=&quot;https://amzn.github.io/style-dictionary/#/&quot;&gt;Style dictionary&lt;/a&gt;). These custom properties are leveraged in all components to create a cohesive visual language and to allow for easy theming. If you choose not to use the provided &lt;code&gt;@spectrum-css/tokens&lt;/code&gt; package, you must define your own custom properties or your components will render with a significant number of missing styles. When overriding certain styles is necessary, modifying styles is supported through the use of component-specific &lt;code&gt;--mod&lt;/code&gt; prefixed properties. &lt;a href=&quot;https://github.com/adobe/spectrum-css?tab=readme-ov-file#modifying-components&quot;&gt;More on this below&lt;/a&gt;.&lt;/p&gt; 
&lt;h3&gt;Using components in your project&lt;/h3&gt; 
&lt;p&gt;Spectrum CSS components have build output that is designed to be used in a variety of ways:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt; &lt;p&gt;&lt;code&gt;index.css&lt;/code&gt; - &lt;em&gt;Preferred and most commonly used to incorporate Spectrum CSS into a project&lt;/em&gt;. This file includes the component&#39;s styles and variable definitions. In this version, token-driven CSS properties&lt;sup&gt;&lt;a href=&quot;https://raw.githubusercontent.com/adobe/spectrum-css/main/#token-footnote&quot;&gt;1&lt;/a&gt;&lt;/sup&gt; are mapped to empty &lt;code&gt;--mod&lt;/code&gt; prefixed variables (for customization) with a fallback to variables prefixed with &lt;code&gt;--spectrum&lt;/code&gt; (sourced from the design tokens).&lt;/p&gt; 
  &lt;ul&gt; 
   &lt;li&gt;This file loads the &lt;code&gt;.spectrum&lt;/code&gt;, &lt;code&gt;.spectrum--legacy&lt;/code&gt;, and &lt;code&gt;.spectrum--express&lt;/code&gt; contexts which are used to toggle components between different &lt;a href=&quot;https://github.com/adobe/spectrum-css?tab=readme-ov-file#visual-language&quot;&gt;visual styles&lt;/a&gt;. The &lt;code&gt;.spectrum&lt;/code&gt; context is the default.&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;&lt;code&gt;index-base.css&lt;/code&gt;: This file mimics the &lt;code&gt;index.css&lt;/code&gt; output, but does not include the &lt;code&gt;.spectrum&lt;/code&gt; or &lt;code&gt;.spectrum--express&lt;/code&gt; contexts.&lt;/p&gt; 
  &lt;ul&gt; 
   &lt;li&gt;If your product only requires the &lt;code&gt;.spectrum&lt;/code&gt; context, you can use &lt;code&gt;index-base.css&lt;/code&gt; plus &lt;code&gt;themes/spectrum-two.css&lt;/code&gt; from the &lt;code&gt;themes&lt;/code&gt; directory to render the default Spectrum visual language. 
    &lt;ul&gt; 
     &lt;li&gt;The &lt;code&gt;.spectrum--legacy&lt;/code&gt; context represents the previous version of Spectrum (also known as Spectrum 1). This means if you only want to use the legacy context, you should load &lt;code&gt;themes/spectrum.css&lt;/code&gt;. &lt;strong&gt;deprecated&lt;/strong&gt;&lt;/li&gt; 
     &lt;li&gt;The &lt;code&gt;.spectrum--express&lt;/code&gt; context represents the subtheme of Spectrum 1 called Express . This means if you only want to use the Express context, you should load &lt;code&gt;themes/express.css&lt;/code&gt;. &lt;strong&gt;deprecated&lt;/strong&gt;&lt;/li&gt; 
    &lt;/ul&gt; &lt;/li&gt; 
   &lt;li&gt;This approach can also be used when you have defined and written your own visual language and only need the base component styles from Spectrum CSS. To wire up your own visual language, you would need to define your own custom properties that match those defined in the &lt;code&gt;themes/spectrum-two.css&lt;/code&gt; assets.&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;&lt;code&gt;index-theme.css&lt;/code&gt;: This file provides only the visual language for a component. It is used in conjunction with &lt;code&gt;index-base.css&lt;/code&gt; and when loaded together, provides the same result as using &lt;code&gt;index.css&lt;/code&gt; by itself.&lt;/p&gt; &lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;&lt;sup&gt;&lt;a name=&quot;token-footnote&quot;&gt;1&lt;/a&gt;&lt;/sup&gt;: Token-driven CSS properties are properties whose values are mapped to a value in the &lt;code&gt;@spectrum-css/tokens&lt;/code&gt; package. These values represent design-language and are meant to be used across platforms. In contrast, properties specific to web-based implementations will not have a token value assigned, so not all CSS properties will use custom properties.&lt;/p&gt; 
&lt;h4&gt;Including assets&lt;/h4&gt; 
&lt;p&gt;Start by including the base set of variables:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-css&quot;&gt;/* Include tokens */
@import &quot;node_modules/@spectrum-css/tokens/dist/index.css&quot;;

/*
  For components with no other contexts available, load the
  index.css file from the component&#39;s package. These are components
  that do not have a spectrum or express context available.
*/
@import &quot;node_modules/@spectrum-css/page/dist/index.css&quot;;
@import &quot;node_modules/@spectrum-css/typography/dist/index.css&quot;;
@import &quot;node_modules/@spectrum-css/icon/dist/index.css&quot;;

/*
  Recommended: For components with multiple contexts available, if you
  want access to all contexts, load the index.css file, which includes
  all contexts and component variables.
*/
@import &quot;node_modules/@spectrum-css/button/dist/index.css&quot;;

/*
  If you only need the spectrum visual context: For components with
  multiple contexts available, load only the spectrum context by sourcing
  index-base.css and the spectrum theme from the themes directory.
*/
@import &quot;node_modules/@spectrum-css/button/dist/index-base.css&quot;;
@import &quot;node_modules/@spectrum-css/button/dist/themes/spectrum.css&quot;;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Tokens values are mapped to context-specific classes which can be applied to the &lt;code&gt;&amp;lt;html&amp;gt;&lt;/code&gt; element or any place in your DOM where you wish to encapsulate or alter the visual language of your Spectrum components.&lt;/p&gt; 
&lt;p&gt;All contexts you want to use must be defined in order to load all the appropriate custom properties for the components you are using.&lt;/p&gt; 
&lt;h4&gt;Global variables&lt;/h4&gt; 
&lt;h5&gt;Visual language&lt;/h5&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;code&gt;.spectrum&lt;/code&gt; - The default visual language for Spectrum CSS; represents the Spectrum 2 foundations visual language.&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;.spectrum--legacy&lt;/code&gt; - The legacy Spectrum 1 visual language. &lt;em&gt;This visual language will be deprecated in Spectrum 2&lt;/em&gt;.&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;.spectrum--express&lt;/code&gt; - A variant of the standard visual language. &lt;em&gt;This visual language will be deprecated in Spectrum 2&lt;/em&gt;.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h5&gt;Scales&lt;/h5&gt; 
&lt;p&gt;Scales represent the browsing context of the user. They are used to adjust the size of components to improve readability and usability on different devices.&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;code&gt;.spectrum--medium&lt;/code&gt; - The default scale for Spectrum CSS, used for desktop and tablet devices&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;.spectrum--large&lt;/code&gt; - A larger scale for Spectrum CSS, used for mobile devices and other small screens to create a more touch-friendly experience&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h5&gt;Themes (colorstops)&lt;/h5&gt; 
&lt;p&gt;Themes represent the color scheme of the user&#39;s browsing context. They are used to adjust the color of components to improve readability and usability in different environments.&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;code&gt;.spectrum--light&lt;/code&gt; - The default theme for Spectrum CSS, used for light mode&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;.spectrum--dark&lt;/code&gt; - A darker theme for Spectrum CSS, used for dark mode&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;Other themes are available but are in the process of being deprecated and should not be used in new projects.&lt;/p&gt; 
&lt;h4&gt;Context example&lt;/h4&gt; 
&lt;p&gt;Put together, we would define the context for our application in the following way:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-html&quot;&gt;&amp;lt;html class=&quot;spectrum spectrum--medium spectrum--light&quot;&amp;gt;&amp;lt;/html&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;To switch to Express, &lt;strong&gt;add&lt;/strong&gt; the &lt;code&gt;.spectrum--express&lt;/code&gt; class to the &lt;code&gt;&amp;lt;html&amp;gt;&lt;/code&gt; element:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-html&quot;&gt;&amp;lt;html
	class=&quot;spectrum spectrum--medium spectrum--light spectrum--express&quot;
&amp;gt;&amp;lt;/html&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Note the &lt;code&gt;spectrum--legacy&lt;/code&gt; or &lt;code&gt;spectrum--express&lt;/code&gt; class is added to the existing classes; &lt;code&gt;spectrum&lt;/code&gt; should always be present to ensure the correct visual language is loaded.&lt;/p&gt; 
&lt;p&gt;Because CSS custom properties honor the cascading nature of CSS, you can infinitely nest different contexts. For example, you could have a &lt;code&gt;.spectrum--dark&lt;/code&gt; context inside of a &lt;code&gt;.spectrum--light&lt;/code&gt; context, and components will honor the innermost context.&lt;/p&gt; 
&lt;h3&gt;Modifying components&lt;/h3&gt; 
&lt;p&gt;You can override variables and modify Spectrum CSS&#39; look and feel by re-defining the custom properties in context. Look for the &lt;strong&gt;Custom Property API&lt;/strong&gt; section in each component to determine which custom properties you can override. See &lt;a href=&quot;https://opensource.adobe.com/spectrum-css/actionbutton.html#custompropertiesapi&quot;&gt;Action Button for a complete example&lt;/a&gt;.&lt;/p&gt; 
&lt;h3&gt;Importing UI icons&lt;/h3&gt; 
&lt;p&gt;Some components require certain &quot;UI icons&quot; to render. These icons are released within the &lt;a href=&quot;https://www.npmjs.com/package/@spectrum-css/ui-icons&quot;&gt;&lt;code&gt;@spectrum-css/ui-icons&lt;/code&gt;&lt;/a&gt; package and are used by components like &lt;code&gt;@spectrum-css/icon&lt;/code&gt; and &lt;code&gt;@spectrum-css/actionbutton&lt;/code&gt;.&lt;/p&gt; 
&lt;p&gt;Based on &lt;a href=&quot;https://github.com/adobe/spectrum-css?tab=readme-ov-file#scales&quot;&gt;which scales&lt;/a&gt; you&#39;ll be using, you can choose to load different files:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt; &lt;p&gt;&lt;code&gt;spectrum-css-icons.svg&lt;/code&gt; - Both medium and large icons for responsive UIs that support both &lt;code&gt;.spectrum--medium&lt;/code&gt; and &lt;code&gt;.spectrum--large&lt;/code&gt;&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;&lt;code&gt;spectrum-css-icons-medium.svg&lt;/code&gt; - Medium icons only, supports &lt;code&gt;.spectrum--medium&lt;/code&gt; only&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;&lt;code&gt;spectrum-css-icons-large.svg&lt;/code&gt; - Large icons only, supports &lt;code&gt;.spectrum--large&lt;/code&gt; only&lt;/p&gt; &lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; If you&#39;re using &lt;code&gt;spectrum-css-icons.svg&lt;/code&gt;, be sure to add &lt;code&gt;.spectrum--medium&lt;/code&gt; or &lt;code&gt;.spectrum--large&lt;/code&gt; to the &lt;code&gt;&amp;lt;html&amp;gt;&lt;/code&gt; element, or you&#39;ll see both medium and large icons at once.&lt;/p&gt; 
&lt;h3&gt;Importing workflow icons&lt;/h3&gt; 
&lt;p&gt;If your app has any level of complexity, you&#39;ll need &quot;workflow&quot; icons to indicate actions. These icons are not required to render the base components, and instead are used within buttons or menu items for actions like share, play, justify, save, etc.&lt;/p&gt; 
&lt;p&gt;These icons are released within the &lt;a href=&quot;https://www.npmjs.com/package/@adobe/spectrum-css-workflow-icons&quot;&gt;&lt;code&gt;@adobe/spectrum-css-workflow-icons&lt;/code&gt;&lt;/a&gt; package. Visit the &lt;a href=&quot;https://spectrum.adobe.com/page/icons/&quot;&gt;Spectrum workflow icon list&lt;/a&gt; and click on any icon to get the SVG markup.&lt;/p&gt; 
&lt;h3&gt;Language support&lt;/h3&gt; 
&lt;p&gt;To take advantage of locale specific changes such as placeholders not italicizing Japanese, your application should specify a &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Language&quot;&gt;&lt;code&gt;Content-Language&lt;/code&gt; response header&lt;/a&gt; or set the &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/lang&quot;&gt;&lt;code&gt;lang&lt;/code&gt; attribute&lt;/a&gt;.&lt;/p&gt; 
&lt;p&gt;In addition, you should set the &lt;code&gt;dir&lt;/code&gt; attribute for components to render correctly.&lt;/p&gt; 
&lt;p&gt;For English, a left-to-right language:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-html&quot;&gt;&amp;lt;html lang=&quot;en&quot; dir=&quot;ltr&quot;&amp;gt;&amp;lt;/html&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;For Arabic, a right-to-left language:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-html&quot;&gt;&amp;lt;html lang=&quot;ar&quot; dir=&quot;rtl&quot;&amp;gt;&amp;lt;/html&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;h3&gt;Browser support&lt;/h3&gt; 
&lt;p&gt;We maintain a modern codebase that supports the latest two versions of evergreen web browsers. The current list of browsers officially supported by Spectrum CSS can be found in the browserslist section of the project&#39;s &lt;a href=&quot;https://github.com/adobe/spectrum-css/raw/main/package.json&quot;&gt;package.json file&lt;/a&gt;. This setting is used by the build tools when the source files are built. If you require additional browser support for your project, the CSS can be processed further with your chosen tools.&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;latest 2 Edge versions&lt;/li&gt; 
 &lt;li&gt;latest 2 Chrome versions&lt;/li&gt; 
 &lt;li&gt;latest 2 Firefox versions&lt;/li&gt; 
 &lt;li&gt;latest 2 Safari versions&lt;/li&gt; 
 &lt;li&gt;latest 2 iOS versions&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h3&gt;Optimizing Spectrum CSS&lt;/h3&gt; 
&lt;p&gt;Spectrum CSS is designed to be as modern and flexible as possible, and as such, leaves room for consumers to optimize in their own way. There are many tools and techniques you can use to optimize CSS for your project such as tree shaking, purging, and minification. If you are loading the entire set of &lt;code&gt;@spectrum-css/tokens&lt;/code&gt; for example, you can safely tree shake the tokens to only include the variables you are using, often leading to a significant reduction in file size.&lt;/p&gt; 
&lt;h2&gt;Contributing&lt;/h2&gt; 
&lt;p&gt;A very special thank you to all of our &lt;a href=&quot;https://github.com/adobe/spectrum-css/graphs/contributors&quot;&gt;contributors&lt;/a&gt; without whom this project would not be possible.&lt;/p&gt; 
&lt;p&gt;Want to join the team? Check out the &lt;a href=&quot;https://raw.githubusercontent.com/adobe/spectrum-css/main/.github/CONTRIBUTING.md&quot;&gt;contributing guidelines&lt;/a&gt; to get started.&lt;/p&gt; 
&lt;h2&gt;Tasks&lt;/h2&gt; 
&lt;p&gt;The following tasks are available:&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Command&lt;/th&gt; 
   &lt;th&gt;Description&lt;/th&gt; 
   &lt;th&gt;Examples&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;clean&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Cleans all output files for the project and all components&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;yarn clean&lt;/code&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;build&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Performs a build of all components&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;yarn build&lt;/code&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;bundle&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Creates a bundled asset for use in demos or development environments&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;yarn bundle&lt;/code&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;start&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Performs a local development build of Storybook&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;yarn start&lt;/code&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;compare&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;This compares the current version of components with the previous versions published to NPM and output a list of all the changes that have been made. This is useful for reviewing changes before a release. The information is provided in the command-line output as well as in a simple web page that is opened in your default browser upon completion. The web page includes links to the visual diffs for each component when the file sizes have changed. 
    &lt;ul&gt;
     &lt;li&gt;Components with no changes are not included in the output.&lt;/li&gt;
     &lt;li&gt;To run comparisons on one or multiple components, &lt;code&gt;compare&lt;/code&gt; accepts a list of components as arguments. For example, &lt;code&gt;yarn compare button&lt;/code&gt; will compare the current version of the button component with the previous version published to NPM. &lt;code&gt;yarn compare button checkbox&lt;/code&gt; will compare the current version of the button and checkbox components with the previous versions published to NPM.&lt;/li&gt;
     &lt;li&gt;Named components should be space-separated.&lt;/li&gt;
     &lt;li&gt;Running &lt;code&gt;compare&lt;/code&gt; with no inputs will automatically run against all packages.&lt;/li&gt;
    &lt;/ul&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;yarn compare&lt;/code&gt;&lt;br /&gt;&lt;code&gt;yarn compare accordion&lt;/code&gt;&lt;br /&gt;&lt;code&gt;yarn compare accordion actionbutton&lt;/code&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;lint&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Provides helpful updates and warnings for a component&#39;s package.json file. This helps keep all components in alignment. Use &lt;code&gt;format&lt;/code&gt; to automatically fix any issues that are found. To run on a single component, use &lt;code&gt;yarn linter accordion&lt;/code&gt; (where &lt;code&gt;accordion&lt;/code&gt; is the name of the component or components you want to lint).&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;yarn lint&lt;/code&gt;&lt;br /&gt;&lt;code&gt;yarn linter accordion&lt;/code&gt;&lt;br /&gt;&lt;code&gt;yarn linter accordion actionbutton&lt;/code&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;format&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Provides helpful updates and warnings for a component&#39;s package.json file. This helps keep all components in alignment. To run on a single component, use &lt;code&gt;yarn formatter accordion&lt;/code&gt; (where &lt;code&gt;accordion&lt;/code&gt; is the name of the component or components you want to lint).&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;yarn format&lt;/code&gt;&lt;br /&gt;&lt;code&gt;yarn formatter accordion&lt;/code&gt;&lt;br /&gt;&lt;code&gt;yarn formatter accordion actionbutton&lt;/code&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;refresh:env&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;This copies values for the project&#39;s &lt;code&gt;.env&lt;/code&gt; file (an asset never committed to the repo as it contains login secrets) by using the &lt;code&gt;.env.example&lt;/code&gt; file as a template. This script is useful when you need to update the &lt;code&gt;.env&lt;/code&gt; file with new values from the &lt;code&gt;.env.example&lt;/code&gt; file or when you checkout or clean the repo and need to restore the &lt;code&gt;.env&lt;/code&gt; file.&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;yarn refresh:env&lt;/code&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;yarn constraints&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;This command will list out any changes suggested by the settings defined in &lt;code&gt;yarn.config.cjs&lt;/code&gt;. The goal of this tool is to more easily allow us to add, update, or remove properties to/from all package assets. Add the &lt;code&gt;fix&lt;/code&gt; flag to apply the suggested changes.&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;yarn constraints&lt;/code&gt; or &lt;code&gt;yarn constraints --fix&lt;/code&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;h2&gt;Troubleshooting&lt;/h2&gt; 
&lt;p&gt;As of February of 2024, the Spectrum CSS project has moved to a new tokens system (@spectrum-css/tokens instead of @spectrum-css/vars). If you are using Spectrum CSS and see that your styles are off, or not applying at all, ensure that you are using the correct tokens package for the component.&lt;/p&gt;</description>
      
      <media:content url="https://opengraph.githubassets.com/42a38a5748efe6f379463f7ba7d4d9c0c3efbd00a23a9c62d9809d6f8576d464/adobe/spectrum-css" medium="image" />
      
    </item>
    
    <item>
      <title>PacktPublishing/Django-5-By-Example</title>
      <link>https://github.com/PacktPublishing/Django-5-By-Example</link>
      <description>&lt;p&gt;Django 5 By Example (5th Edition) published by Packt&lt;/p&gt;&lt;hr&gt;&lt;h1&gt;Django 5 by Example&lt;/h1&gt; 
&lt;p&gt;&lt;a href=&quot;https://djangobyexample.com/&quot;&gt;&lt;img src=&quot;https://github.com/zenx/Django-5-by-example/assets/37978/b176fcf1-ec74-471f-9eb6-363db594719c&quot; style=&quot;width:200px;&quot; align=&quot;left&quot; /&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;p&gt;&lt;a href=&quot;https://github.com/PacktPublishing/Django-5-By-Example/stargazers&quot;&gt;&lt;img src=&quot;https://img.shields.io/github/stars/PacktPublishing/Django-5-By-Example&quot; alt=&quot;GitHub stars&quot; /&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;p&gt;This is the code repository for &lt;a href=&quot;https://djangobyexample.com/&quot;&gt;Django 5 by Example&lt;/a&gt;, written by &lt;a href=&quot;https://antoniomele.es/&quot;&gt;Antonio Melé&lt;/a&gt; and published by &lt;a href=&quot;https://www.packtpub.com/product/django-5-by-example-fifth-edition/9781805125457&quot;&gt;Packt&lt;/a&gt;. It contains all the supporting project files necessary to work through the book from start to finish.&lt;/p&gt; 
&lt;p&gt;Technical Reviewer: &lt;a href=&quot;https://github.com/marksweb&quot;&gt;Mark Walker&lt;/a&gt; &lt;br /&gt;Foreword: &lt;a href=&quot;https://github.com/pauloxnet/&quot;&gt;Paolo Melchiorre&lt;/a&gt;&lt;/p&gt; 
&lt;h2&gt;Instructions&lt;/h2&gt; 
&lt;p&gt;The code is organised into directories with the chapter number. For example, &lt;code&gt;Chapter02&lt;/code&gt; contains the source code for chapter 2. Each chapter folder has a &lt;code&gt;requirements.txt&lt;/code&gt; file that includes all packages required to run the code of that chapter. These can be installed with the command &lt;code&gt;pip install -r requirements.txt&lt;/code&gt;.&lt;/p&gt; 
&lt;p&gt;Run the Django development server with the command:&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;python manage.py runserver
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Docker Compose is explained in Chapter 17. However all chapters include a Docker Compose configuration and a management script (contribution by &lt;a href=&quot;https://github.com/marksweb&quot;&gt;@marksweb&lt;/a&gt;).&lt;/p&gt; 
&lt;p&gt;Commands to build and run using Docker Compose:&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;./do.sh build
./do.sh run
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;List of commands:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;code&gt;build [&amp;lt;arg&amp;gt;]&lt;/code&gt;: Builds Docker images. Optional arguments can specify specific images to build.&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;exec [&amp;lt;arg&amp;gt;]&lt;/code&gt;: Execute a command in a container.&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;compose&lt;/code&gt;: Minimal wrapper around Docker Compose, ensuring correct configuration files are loaded.&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;migrate [&amp;lt;arg&amp;gt;]&lt;/code&gt;: Apply any unapplied Django migrations.&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;makemigrations [&amp;lt;arg&amp;gt;]&lt;/code&gt;: Create a new Django migration, specifying additional arguments if needed.&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;check&lt;/code&gt;: Validate Django settings.&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;shell&lt;/code&gt;: Open a bash terminal in the specified container (web_run).&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;start [&amp;lt;arg&amp;gt;]&lt;/code&gt;: Start the Django server and dependent services. Use -d to run detached.&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;stop [&amp;lt;arg&amp;gt;]&lt;/code&gt;: Stop the Django server and dependent services.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;About the Book&lt;/h2&gt; 
&lt;p&gt;&lt;strong&gt;Django 5 by Example&lt;/strong&gt; (5th edition) will guide you through the entire process of developing professional web applications with Django. The book not only covers the most relevant aspects of the framework, but it will also teach you how to integrate other popular technologies into your Django projects.&lt;/p&gt; 
&lt;p&gt;The book will walk you through the creation of four real-world applications, solving common problems, and implementing best practices, using a step-by-step approach that is easy to follow.&lt;/p&gt; 
&lt;p&gt;After reading this book, you will have a good understanding of how Django works and how to build practical, advanced web applications.&lt;/p&gt; 
&lt;h2&gt;Requirements&lt;/h2&gt; 
&lt;p&gt;This book requires Python 3.12+ and Django 5.&lt;/p&gt; 
&lt;h2&gt;Django Projects&lt;/h2&gt; 
&lt;p&gt;The book covers a wide range of web app development topics divided into four different Django projects:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt; &lt;p&gt;&lt;strong&gt;Blog Application&lt;/strong&gt; (chapters 1-3): Create a complete blog application&lt;/p&gt; 
  &lt;ul&gt; 
   &lt;li&gt;Build data models, views, and URLs&lt;/li&gt; 
   &lt;li&gt;Implement an administration site for your blog&lt;/li&gt; 
   &lt;li&gt;Use canonical URLs for modles and implement SEO-friendly URLs for posts&lt;/li&gt; 
   &lt;li&gt;Build post pagination and learn how to create class-based views&lt;/li&gt; 
   &lt;li&gt;Use forms to allow readers to share posts via email and implement a comment system using model forms&lt;/li&gt; 
   &lt;li&gt;Add tags to posts using &lt;a href=&quot;https://github.com/jazzband/django-taggit&quot;&gt;django-taggit&lt;/a&gt; and recommend similar posts based on shared tags&lt;/li&gt; 
   &lt;li&gt;Implement custom template tags to display latest posts and most commented posts&lt;/li&gt; 
   &lt;li&gt;Implement a custom template filter to render &lt;a href=&quot;https://github.com/Python-Markdown/markdown&quot;&gt;Markdown&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;Create a sitemap and a RSS feed for your blog&lt;/li&gt; 
   &lt;li&gt;Implement a full-text search engine using PostgreSQL&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;&lt;strong&gt;Social Website&lt;/strong&gt; (chapters 4-7): Create a website to bookmark and share images&lt;/p&gt; 
  &lt;ul&gt; 
   &lt;li&gt;Implement authentication using the Django authentication framework&lt;/li&gt; 
   &lt;li&gt;Extend the user model with a custom profile model&lt;/li&gt; 
   &lt;li&gt;Use the Diango messages framework&lt;/li&gt; 
   &lt;li&gt;Build a custom authentication backend&lt;/li&gt; 
   &lt;li&gt;Implement social authentication (OAuth2) with Google using &lt;a href=&quot;https://github.com/python-social-auth/social-app-django&quot;&gt;Python Social Auth&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;Use &lt;a href=&quot;https://github.com/django-extensions/django-extensions&quot;&gt;django-extensions&lt;/a&gt; to run the development server through HTTPS&lt;/li&gt; 
   &lt;li&gt;Generate image thumbnails with &lt;a href=&quot;https://github.com/SmileyChris/easy-thumbnails&quot;&gt;easy-thumbnails&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;Implement many-to-many relationships in models&lt;/li&gt; 
   &lt;li&gt;Build a JavaScript bookmarklet with JavaScript and Django&lt;/li&gt; 
   &lt;li&gt;Add asynchronous HTTP requests with the JavaScript Fetch API and Django&lt;/li&gt; 
   &lt;li&gt;Implement infinite scroll pagination&lt;/li&gt; 
   &lt;li&gt;Build a user follow system&lt;/li&gt; 
   &lt;li&gt;Create a user activity stream and optimize QuerySets&lt;/li&gt; 
   &lt;li&gt;Learn to use Django signals&lt;/li&gt; 
   &lt;li&gt;Use &lt;a href=&quot;https://github.com/jazzband/django-debug-toolbar&quot;&gt;django-debug-toolbar&lt;/a&gt; to obtain relevant debug information&lt;/li&gt; 
   &lt;li&gt;Count image views with &lt;a href=&quot;https://redis.io/&quot;&gt;Redis&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;Build an image ranking with Redis&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;&lt;strong&gt;Ecommerce Application&lt;/strong&gt; (chapters 8-11): Create a fully-featured on-line shop&lt;/p&gt; 
  &lt;ul&gt; 
   &lt;li&gt;Build the models of the product catalog&lt;/li&gt; 
   &lt;li&gt;Create a shopping cart using Django sessions&lt;/li&gt; 
   &lt;li&gt;Create custom context processors&lt;/li&gt; 
   &lt;li&gt;Manage customer orders&lt;/li&gt; 
   &lt;li&gt;Send asynchronous notifications using &lt;a href=&quot;https://docs.celeryq.dev/&quot;&gt;Celery&lt;/a&gt; and &lt;a href=&quot;https://www.rabbitmq.com/&quot;&gt;RabbitMQ&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;Monitory Celery using &lt;a href=&quot;https://github.com/mher/flower&quot;&gt;Flower&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;Integrate &lt;a href=&quot;https://stripe.com/&quot;&gt;Stripe&lt;/a&gt; to process payments&lt;/li&gt; 
   &lt;li&gt;Implement a webhook to receive payment notifications from Stripe&lt;/li&gt; 
   &lt;li&gt;Build custom views in the Django administration site&lt;/li&gt; 
   &lt;li&gt;Create admin actions and generate CSV files&lt;/li&gt; 
   &lt;li&gt;Generate PDF invoices dynamically using &lt;a href=&quot;https://weasyprint.org/&quot;&gt;Weasyprint&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;Create a coupon system to apply disconts to orders&lt;/li&gt; 
   &lt;li&gt;Integrate discounts with Stripe payments&lt;/li&gt; 
   &lt;li&gt;Build a product recommendation engine using Redis&lt;/li&gt; 
   &lt;li&gt;Add internationalization to the shop&lt;/li&gt; 
   &lt;li&gt;Generate and manage translation files&lt;/li&gt; 
   &lt;li&gt;Use &lt;a href=&quot;https://github.com/mbi/django-rosetta&quot;&gt;Rosetta&lt;/a&gt; to manage translations&lt;/li&gt; 
   &lt;li&gt;Translate URL patterns and build a language selector&lt;/li&gt; 
   &lt;li&gt;Translate models using &lt;a href=&quot;https://github.com/django-parler/django-parler&quot;&gt;django-parler&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;Localize forms using &lt;a href=&quot;https://github.com/django/django-localflavor&quot;&gt;django-localflavor&lt;/a&gt;&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;&lt;strong&gt;eLearning Platform&lt;/strong&gt; (chapters 12-17): Create an eLearning platform including a CMS&lt;/p&gt; 
  &lt;ul&gt; 
   &lt;li&gt;Build course models&lt;/li&gt; 
   &lt;li&gt;Create and use data fixtures&lt;/li&gt; 
   &lt;li&gt;Use model inheritance to create polymorphic Content&lt;/li&gt; 
   &lt;li&gt;Create a custom model field to order course contents&lt;/li&gt; 
   &lt;li&gt;Implement authentication views&lt;/li&gt; 
   &lt;li&gt;Build a content management system using class-based views and mixins&lt;/li&gt; 
   &lt;li&gt;Restrict access using groups and permissions&lt;/li&gt; 
   &lt;li&gt;Build formsets to manage course contents&lt;/li&gt; 
   &lt;li&gt;Create drag-and-drop functionality to reorder content in-place using JavaScript and Django&lt;/li&gt; 
   &lt;li&gt;Using generic mixins from &lt;a href=&quot;https://github.com/brack3t/django-braces&quot;&gt;django-braces&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;Implement public views and student enrolment views&lt;/li&gt; 
   &lt;li&gt;Render different type of contents and use &lt;a href=&quot;https://github.com/jazzband/django-embed-video&quot;&gt;django-embed-video&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;Cache content using the cache framework&lt;/li&gt; 
   &lt;li&gt;Use the &lt;a href=&quot;https://memcached.org/&quot;&gt;Memached&lt;/a&gt; and Redis cache backends&lt;/li&gt; 
   &lt;li&gt;Monitor Redis using &lt;a href=&quot;https://github.com/ionelmc/django-redisboard&quot;&gt;django-redisboard&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;Build an API using &lt;a href=&quot;https://www.django-rest-framework.org/&quot;&gt;Django REST Framework&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;Create serializers for models and custom API views&lt;/li&gt; 
   &lt;li&gt;Handle API authentication and permissions&lt;/li&gt; 
   &lt;li&gt;Build API viewsets and routers&lt;/li&gt; 
   &lt;li&gt;Consume your API using Python &lt;a href=&quot;https://github.com/psf/requests&quot;&gt;requests&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;Create a real-time chat server using Django &lt;a href=&quot;https://github.com/django/channels&quot;&gt;Channels&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;Implement a WebSocket consumer/client using Django and JavaScript&lt;/li&gt; 
   &lt;li&gt;Use Redis to set up a channel layer&lt;/li&gt; 
   &lt;li&gt;Make your WebSocket fully-asynchronous&lt;/li&gt; 
   &lt;li&gt;Implement a chat history by persisting chat messages&lt;/li&gt; 
   &lt;li&gt;Create settings for multiple environments&lt;/li&gt; 
   &lt;li&gt;Configure a production environment using &lt;a href=&quot;https://docs.docker.com/compose/&quot;&gt;Docker Compose&lt;/a&gt; with PostgreSQL, Redis, &lt;a href=&quot;https://www.nginx.com/&quot;&gt;Nginx&lt;/a&gt;, &lt;a href=&quot;https://uwsgi-docs.readthedocs.io/en/latest/&quot;&gt;uWSGI&lt;/a&gt; and &lt;a href=&quot;https://github.com/django/daphne&quot;&gt;Daphne&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;Serve your project securely through HTTPS&lt;/li&gt; 
   &lt;li&gt;Use the Django system check framework&lt;/li&gt; 
   &lt;li&gt;Build a custom middleware&lt;/li&gt; 
   &lt;li&gt;Create custom management commands&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;Community &amp;amp; Support&lt;/h2&gt; 
&lt;p&gt;Join the book &lt;a href=&quot;https://packt.link/Django5ByExample&quot;&gt;Discord Community&lt;/a&gt; to participate in the ongoing discussions or/and initiate a new one. You will find other developers reading the book alongside and helping each other with questions.&lt;/p&gt; 
&lt;h2&gt;Source Code for Previous Editions&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/PacktPublishing/Django-4-by-Example&quot;&gt;Django 4 by Example&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/PacktPublishing/Django-3-by-Example&quot;&gt;Django 3 by Example&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/PacktPublishing/Django-2-by-Example&quot;&gt;Django 2 by Example&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/PacktPublishing/Django-by-Example&quot;&gt;Django by Example&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;Editions in Other Languages&lt;/h2&gt; 
&lt;p&gt;While the 5th edition of the book is translated to other languages, you can find translations for the previous editions:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;Simplified Chinese: &lt;a href=&quot;https://www.tup.tsinghua.edu.cn/booksCenter/book_09905201.html&quot;&gt;Django 4实例精解&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;Polish: &lt;a href=&quot;https://helion.pl/ksiazki/django-4-praktyczne-tworzenie-aplikacji-sieciowych-wydanie-iv-antonio-mele,djan44.htm#format/d&quot;&gt;Django 4. Praktyczne tworzenie aplikacji sieciowych. Wydanie IV&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;Russian: &lt;a href=&quot;https://dmkpress.com/catalog/computer/web/978-5-93700-204-4/&quot;&gt;Django 4 в примерах&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;Brazilian Portuguese: &lt;a href=&quot;https://novatec.com.br/livros/aprenda-django3-com-exemplos/&quot;&gt;Aprenda Django 3 com Exemplos&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;Serbo-Croatian-Bosnian: &lt;a href=&quot;https://knjige.kombib.rs/django-3-kroz-primere-prevod-iii-izdanja&quot;&gt;Django 3 kroz primere, prevod III izdanja&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;Spanish: &lt;a href=&quot;https://www.amazon.es/Django-2-Antonio-Mel%C3%A9/dp/8426727484&quot;&gt;Django 2&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;Download a free PDF&lt;/h2&gt; 
&lt;p&gt;If you have already purchased a print or Kindle version of this book, you can get a DRM-free PDF version at no cost. Simply click on the link to claim your free PDF: &lt;a href=&quot;https://packt.link/free-ebook/9781805125457&quot;&gt;https://packt.link/free-ebook/9781805125457&lt;/a&gt;&lt;/p&gt; 
&lt;h2&gt;Graphic Bundle&lt;/h2&gt; 
&lt;p&gt;We also provide a PDF file that has color images of the screenshots/diagrams used in this book at &lt;a href=&quot;https://packt.link/gbp/9781805125457&quot;&gt;GraphicBundle&lt;/a&gt; &lt;img alt=&quot;Coding&quot; height=&quot;15&quot; width=&quot;35&quot; src=&quot;https://media.tenor.com/ex_HDD_k5P8AAAAi/habbo-habbohotel.gif&quot; /&gt;&lt;/p&gt; 
&lt;h2&gt;Errata&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt;Page 39 &lt;code&gt;Post.objects.filter(id_lt=3).count()&lt;/code&gt; code example should read &lt;code&gt;Post.objects.filter(id__lt=3).count()&lt;/code&gt;&lt;/li&gt; 
&lt;/ul&gt;</description>
      
      <media:content url="https://opengraph.githubassets.com/641e5fa037c5a5c0fd3811188798edf11e3cdd8ad07d2cb1772dd4168eaa897b/PacktPublishing/Django-5-By-Example" medium="image" />
      
    </item>
    
  </channel>
</rss>
