Add new projects

feat/projects-list
Kamran Ahmed 4 months ago
parent 0e80fd967f
commit d51f34875c
  1. 4
      src/data/projects/expense-tracker.md
  2. 51
      src/data/projects/github-user-activity.md
  3. 69
      src/data/projects/personal-blog.md
  4. 2
      src/data/projects/task-tracker.md
  5. 47
      src/data/projects/unit-converter.md

@ -1,8 +1,8 @@
--- ---
title: 'Expense Tracker' title: 'Expense Tracker'
description: 'Build a simple expense tracker application to manage your finances.' description: 'Build a simple expense tracker to manage your finances.'
isNew: false isNew: false
sort: 2 sort: 3
difficulty: 'beginner' difficulty: 'beginner'
nature: 'CLI' nature: 'CLI'
skills: skills:

@ -0,0 +1,51 @@
---
title: 'GitHub User Activity'
description: 'Use GitHub API to fetch user activity and display it in the terminal.'
isNew: false
sort: 2
difficulty: 'beginner'
nature: 'CLI'
skills:
- 'Programming Language'
- 'API Consumption'
seo:
title: 'GitHub User Activity CLI'
description: 'Build a command line interface (CLI) to fetch and display GitHub user activity.'
keywords:
- 'github user activity cli'
- 'backend project idea'
roadmapIds:
- 'backend'
---
In this project, you will build a simple command line interface (CLI) to fetch the recent activity of a GitHub user 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 the GitHub username as an argument, fetch the user's recent activity using the GitHub API, and display it in the terminal. The user should be able to:
- Provide the GitHub username as an argument when running the CLI.
```bash
github-activity <username>
```
- Fetch the recent activity of the specified GitHub user using the GitHub API. You can use the following endpoint to fetch the user's activity:
```
# https://api.github.com/users/<username>/events
# Example: https://api.github.com/users/kamranahmedse/events
```
- Display the fetched activity in the terminal.
```
Output:
- Pushed 3 commits to kamranahmedse/developer-roadmap
- Opened a new issue in kamranahmedse/developer-roadmap
- Starred kamranahmedse/developer-roadmap
- ...
```
You can [learn more about the GitHub API here](https://docs.github.com/en/rest/activity/events?apiVersion=2022-11-28).
- 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 GitHub activity.
<hr />
If you are looking to build a more advanced version of this project, you can consider adding features like filtering the activity by event type, displaying the activity in a more structured format, or caching the fetched data to improve performance. You can also explore other endpoints of the GitHub API to fetch additional information about the user or their repositories.

@ -0,0 +1,69 @@
---
title: 'Personal Blog'
description: 'Build a personal blog to write and publish articles on various topics.'
isNew: false
sort: 5
difficulty: 'beginner'
nature: 'Web App'
skills:
- 'Programming Language'
- 'Basic Authentication'
- 'Markdown'
- 'Filesystem'
- 'Libraries'
seo:
title: 'Personal Blog Project Idea'
description: 'Build a personal blog to write and publish articles on various topics. Learn how to create a blog using a programming language and frontend technologies.'
keywords:
- 'personal blog project'
- 'backend project idea'
roadmapIds:
- 'backend'
---
You are required to build a personal blog where you can write and publish articles. The blog will have two sections: a guest section and an admin section.
**Guest Section** — A list of pages that can be accessed by anyone:
- **Home Page:** This page will display the list of articles published on the blog.
- **Article Page:** This page will display the content of the article along with the date of publication.
**Admin Section** — are the pages that only you can access to publish, edit, or delete articles.
- **Dashboard:** This page will display the list of articles published on the blog along with the option to add a new article, edit an existing article, or delete an article.
- **Add Article Page:** This page will contain a form to add a new article. The form will have fields like title, content, and date of publication.
- **Edit Article Page:** This page will contain a form to edit an existing article. The form will have fields like title, content, and date of publication.
Here are the mockups to give you an idea of the different pages of the blog.
Pages that anyone can access
![Personal Blog](https://assets.roadmap.sh/guest/blog-guest-pages.png)
Pages that only the admin can access
![Personal Blog](https://assets.roadmap.sh/guest/blog-admin-pages.png)
## How to Implement
Here are some guidelines to help you implement the personal blog:
### Storage
To keep things simple for now, you can use the filesystem to store the articles. Each article will be stored as a separate file in a directory. The file will contain the title, content, and date of publication of the article. You can use JSON or Markdown format to store the articles.
### Backend
You can use any programming language to build the backend of the blog. You don't have to make it as an API for this project, we have other projects for that. You can have pages that render the HTML directly from the server and forms that submit data to the server.
### Frontend
For the frontend, you can use HTML and CSS (no need for JavaScript for now). You can use any templating engine to render the articles on the frontend.
### Authentication
You can implement basic authentication for the admin section. You can either use the [standard HTTP basic authentication](https://youtu.be/mwccHwUn7Gc?t=20) or simply hardcode the username and password in the code for now and create a simple login page that will create a session for the admin.
<hr />
After completing this project, you will have practised templating, filesystem operations, basic authentication, form handling, and rendering HTML pages from the server. You can extend this project further by adding features like comments, categories, tags, search functionality, etc. Make sure to check the other backend projects that go into more advanced topics like databases, APIs, security best practices etc.

@ -1,6 +1,6 @@
--- ---
title: 'Task Tracker' title: 'Task Tracker'
description: 'Build a command line (CLI) app to track your tasks and manage your to-do list.' description: 'Build a CLI app to track your tasks and manage your to-do list.'
isNew: false isNew: false
sort: 1 sort: 1
difficulty: 'beginner' difficulty: 'beginner'

@ -0,0 +1,47 @@
---
title: 'Unit Converter'
description: 'Unit converter to convert between different units of measurement.'
isNew: false
sort: 4
difficulty: 'beginner'
nature: 'Web App'
skills:
- 'Programming Language'
- 'HTML'
- 'Server'
- 'Logic Building'
seo:
title: 'Unit Converter'
description: 'Build a Unit Converter to convert between different units of measurement.'
keywords:
- 'unit converter'
- 'backend project idea'
roadmapIds:
- 'backend'
---
You are required to build a simple web app that can convert between different units of measurement. It can convert units of length, weight, volume, area, temperature, and more. The user can input a value and select the units to convert from and to. The application will then display the converted value.
## Requirements
Build a simple web page that will have different sections for different units of measurement. The user can input a value to convert, select the units to convert from and to, and view the converted value.
- The user can input a value to convert.
- The user can select the units to convert from and to.
- The user can view the converted value.
- The user can convert between different units of measurement like length, weight, temperature, etc (more given below).
You can include the following units of measurement to convert between:
- Length: millimeter, centimeter, meter, kilometer, inch, foot, yard, mile.
- Weight: milligram, gram, kilogram, ounce, pound.
- Temperature: Celsius, Fahrenheit, Kelvin.
## How it works
You don't need to use any database for this project. There will be a simple webpage that will submit the form to the server and get the converted value back and display it on the webpage.
![Unit Converter](https://assets.roadmap.sh/guest/unit-converter-be-project.png)
You can have 3 webpages for each type of unit conversion (length, weight, temperature) with forms to input the value and select the units to convert from and to. Submitting a form will submit the data to the current page (i.e. `target="_self"`) and display the converted value. You can do this using the backend programming language of your choice i.e. check if the form is submitted and then calculate the converted value and display it on the webpage, if not submitted then display the form.
Loading…
Cancel
Save