Compare commits

...

12 Commits

Author SHA1 Message Date
Kamran Ahmed
78fd6ce046 Update file integrity checker project 2024-11-24 08:27:26 +05:00
dsh
a3628c1fe5 quizz project 2024-10-17 12:46:19 +01:00
dsh
fe03cb6b8b add quizz project 2024-10-17 12:24:33 +01:00
dsh
8368d3e031 add tmdb tool project 2024-10-17 12:11:30 +01:00
dsh
5a7d86ddb7 add memory game 2024-10-17 11:40:59 +01:00
dsh
1e07a489e8 add weather app project 2024-10-17 11:29:22 +01:00
dsh
c79fc94558 add pass man stretch goals 2024-10-17 11:10:38 +01:00
dsh
1455c80fae add period 2024-10-17 11:08:06 +01:00
dsh
6e1fe7f3e4 add story project 2024-10-17 11:07:23 +01:00
dsh
02b5b5538d add pomodoro project 2024-10-17 10:56:02 +01:00
dsh
6ab24ce37f add cli password manager project 2024-10-17 10:46:25 +01:00
dsh
4158361571 add file integrity project 2024-10-17 10:33:58 +01:00
8 changed files with 344 additions and 0 deletions

View File

@@ -0,0 +1,56 @@
---
title: 'File Integrity Checker'
description: 'Verify the integrity of system or application log files to detect tampering.'
isNew: false
sort: 16
difficulty: 'intermediate'
nature: 'Security'
skills:
- 'Bash'
- 'Python'
- 'Linux'
- 'Cyber Security'
seo:
title: 'Build A File Integrity Checking Tool'
description: 'Learn how to build a CLI tool that validates the integrity of a file using hashes.'
keywords:
- 'integrity'
- 'hashing'
- 'security'
- 'devops'
- 'cyber security'
roadmapIds:
- 'devops'
---
You are required to develop a tool that verifies the integrity of log files to detect tampering. This tool can be used to enhance security measures by using techniques such as file integrity monitoring and hashing to ensure that no unauthorized changes have been made to the log files.
## Requirements
The tool should be capable of the following:
- Accept a directory or a single log file as input.
- Utilize a cryptographic hashing algorithm, such as SHA-256, to compute hashes for each log file provided.
- On first use, store the computed hashes in a secure location.
- For subsequent uses, compare the newly computed hashes against the previously stored ones.
- Clearly report any discrepancies found as a result of the hash comparison, indicating possible file tampering.
- Allow for manual re-initialization of log file integrity.
Here is the example of how it might look like
```bash
> ./integrity-check init /var/log # Initializes and stores hashes of all log files in the directory
> Hashes stored successfully.
> ./integrity-check check /var/log/syslog
> Status: Modified (Hash mismatch)
# Optionally report the files where hashes mismatched
> ./integrity-check -check /var/log/auth.log
> Status: Unmodified
> ./integrity-check update /var/log/syslog
> Hash updated successfully.
```
After completing this project you will get the idea of hashing algorithms, security and writing scripts.

View File

@@ -0,0 +1,40 @@
---
title: 'Memory Game'
description: 'Build a browser-based memory game.'
isNew: false
sort: 1
difficulty: 'intermediate'
nature: 'Game'
skills:
- 'Programming Language'
- 'Browser'
- 'Game'
- 'JavaScript'
- 'HMTL'
- 'CSS'
seo:
title: 'Web-based memory game.'
description: 'Build a web-based memory game with increasing difficulty.'
keywords:
- 'game'
- 'frontend project idea'
- 'memory game'
roadmapIds:
- 'frontend'
---
In this project we will build a browser-based memory game where a user will memorize a pattern of colored buttons. As the player progresses, the sequence gets longer and more difficult, testing their memory and attention to detail. This project demonstrates core web development concepts such as DOM manipulation, event handling.
## Requirements
- The user is presented with 4 coloured buttons in a 2 by 2 layout.
- The user starts the game by pressing any button.
- The first level is one colour, and will increase by an extra colour each level.
- The next level must build on the previous level i.e. L1: a, L2: a,c L3: a,c,d.
- If the user fails to get the correct pattern the game is ended and the user is presented with a score.
## Stretch Goals
- Use local browser storage to keep the users high score.
- Update the experience with animations and sounds.
- Incorporate a timer to allow the user to also try to encorporate speed as well as accuracy.

View File

@@ -0,0 +1,38 @@
---
title: 'Password Manager - CLI'
description: 'Create a CLI based Password Manager'
isNew: false
sort: 1
difficulty: 'advanced'
nature: 'CLI'
skills:
- 'Bash'
- 'Linux'
- 'GPG'
seo:
title: 'Build A File CLI Based Password Manager in Bash'
description: 'Learn how to build a CLI based Password Manager in Bash.'
keywords:
- 'bash'
- 'cli'
- 'linux'
- 'gpg'
roadmapIds:
- 'linux'
---
In this project, you will develop a CLI based Password Manager in Bash that allows users to store, retrieve, and manage their passwords securely using strong encryption methods such as GPG.
## Requirements
The tool should:
- Be password protected and restricted to only the assigned user.
- Allow the user to add, delete and view passwords.
- Suggest strong passwords.
- Use GPG to encrypt the password storage file.
## Stretch Goals
- Make the CLI interactive with navigation options rather than CLI arguments.
- Allow the user to share passwords with other (local) users.

View File

@@ -0,0 +1,40 @@
---
title: 'Pomodoro Web App'
description: 'Build a web-based Pomodoro tool.'
isNew: false
sort: 1
difficulty: 'intermediate'
nature: 'Web App'
skills:
- 'Programming Language'
- 'JavaScript'
- 'HTML'
- 'CSS'
- 'Browser'
seo:
title: 'Build a Pomodoro Web App'
description: 'Build a web-based pomodoro application to track your work and rest times.'
keywords:
- 'pomodoro'
- 'frontend project idea'
roadmapIds:
- 'frontend'
- 'javascript'
---
Create a Pomodoro time-management app that tracks how many times you have used the timer. Use the local storage feature available in browsers to store the information.
## Requirements
The tool must have the following features:
- The ability to start a timer that ends at either 25 or 5 minutes.
- The ability to pause the timer.
- The ability to reset the timer when paused.
- The user should be able to see total time spent in the timers.
- The browsers local storage must be used to persist the data saved between visits.
## Stretch Goals
- Allow the user to create projects where pomodoro time is assigned.
- Allow the user to add time during the running of the timer i.e. +1, +5, +10 etc.

View File

@@ -0,0 +1,46 @@
---
title: 'Quizz'
description: 'Build a browser-based quizz.'
isNew: false
sort: 1
difficulty: 'intermediate'
nature: 'Web App'
skills:
- 'Programming Language'
- 'Browser'
- 'Web App'
- 'JavaScript'
- 'HMTL'
- 'CSS'
seo:
title: 'Build a Web-based Quiz.'
description: 'Build a web-based quizz with a timer and high scores.'
keywords:
- 'html'
- 'css'
- 'javascript'
- 'frontend project idea'
- 'quiz'
roadmapIds:
- 'frontend'
- 'javascript'
---
In this project, we will be making a browser based quizz. The app will present users with a series of multiple-choice questions and after each question, the app will provide immediate feedback on whether the selected answer is correct or incorrect.
## Requirements
As the developer, feel free to define the questions as you see fit.
- The user will be initially present with a "start" button.
- When the user presses start they're presented with the first multiple choice question.
- The questions are to be presented as `cards` with the answers being buttons on the card.
- When the user selects an answer, the answer buttons are to turn red or green depending on the result.
- If the user answers correctly, a score is to be incremented.
- At the end of the quizz, the user is presented with a final score and all of the results.
## Stretch Goals
- Add a time limit to each question, skipping the question and give a 0 score if the limit is hit.
- Add the feature of user inputted answers for more complexity.
- Allow the user to share their results on social media.

View File

@@ -0,0 +1,37 @@
---
title: '24hr Story Feature'
description: 'Create a client-side instagram story clone.'
isNew: false
sort: 1
difficulty: 'advanced'
nature: 'JavaScript'
skills:
- 'JavaScript'
- 'Storage'
- 'Timeouts'
seo:
title: 'Build an Instagram Story Clone'
description: 'Learn how to build a Client-side Instagram Story Clone.'
keywords:
- 'html'
- 'css'
- 'javascript'
- 'instagram story'
roadmapIds:
- 'frontend'
- 'javascript'
---
You are required to build a "Story" feature similar to those found in popular social media platforms like Instagram and WhatsApp. The goal is to allow users to post short, ephemeral content that disappears after X hours. As this is a Frontend project this is going to be client-side only.
## Requirements
- The users avatar has a `+` icon in the bottom right which will act as an upload button.
- Users can upload an image or video.
- The user avatar is given a visually appealing border when a story is active.
- After the defined time, the story is no longer viewable and the avatar returns to the default state.
## Stretch Goals
- Multiple stories can be added and accessible via swipe functionality.
- Allow users to remove a live story.

View File

@@ -0,0 +1,49 @@
---
title: 'TMDB CLI Tool'
description: 'Use TMDB API to fetch movie information and display it in the terminal.'
isNew: false
sort: 2
difficulty: 'beginner'
nature: 'CLI'
skills:
- 'Programming Language'
- 'CLI'
- 'API Consumption'
seo:
title: 'TMDB CLI Tool'
description: 'Build a command line interface (CLI) to fetch and display common TMDB requests.'
keywords:
- 'tmdb user activity cli'
- 'backend project idea'
roadmapIds:
- 'backend'
- 'nodejs'
- 'python'
- 'java'
- 'golang'
- 'spring-boot'
- 'cpp'
---
In this project, you will build a simple command line interface (CLI) to fetch data from The Movie Database (TMSB) and display it in the terminal. This project will help you practice your programming skills, including working with APIs, handling JSON data, and building a simple CLI application.
## Requirements
The application should run from the command line, accept common searches as arguments, and display it in the terminal. The user should be able to:
- Provide common requests as an argument when running the CLI.
```bash
tmdb-app trending
```
- Fetch the data from common requests using the TMDB API. You can use the following endpoint to fetch the trending movies:
```
# https://api.themoviedb.org/3/movie/top_rated?language=en-US&page=1
```
- Display the fetched data in the terminal.
You can [learn more about the TMDB API here](https://developer.themoviedb.org/reference/intro/getting-started).
- Handle errors gracefully, such as invalid usernames or API failures.
- Use a programming language of your choice to build this project.
- Do not use any external libraries or frameworks to fetch the TMDB activity.
<hr />

View File

@@ -0,0 +1,38 @@
---
title: 'Weather Web App'
description: 'Build a weather app that fetches and displays weather for a given location.'
isNew: false
sort: 1
difficulty: 'intermediate'
nature: 'API'
skills:
- 'Programming Language'
- '3rd Party APIs'
- 'JavaScript'
- 'HMTL'
- 'CSS'
seo:
title: 'Weather App Project Idea'
description: 'Build a web-based weather app that fetches and displays weather data.'
keywords:
- 'weather api'
- 'frontend project idea'
roadmapIds:
- 'frontend'
---
In this project you are required to build a weather app that displays the current weather details based on the location entered by the user. We will be leveraging a common weather API to achieve this.
You can use the 100% Visual Crossing Weather API - [here](https://www.visualcrossing.com/weather-api)
## Requirements
- The User should be able to enter a location into an input field
- The User will be presented with temperature, wind speed, likelihood of rain, and general weather i.e. Sunny, Raining, Cloudy etc.
- The User will be shown the previous and future 24 hour periods.
- The weather outlook can be refreshed by the user.
## Stretch Goals
- Animation libraries such as framer can used to make the loading of weather more visually appealing
- The default weather view is the Users current location.