From a546daca6f4b721841cbdffa5fd879bc5b846617 Mon Sep 17 00:00:00 2001 From: Kamran Ahmed Date: Tue, 6 Aug 2024 23:52:46 +0100 Subject: [PATCH] Add expense tracker API project --- src/data/projects/expense-tracker-api.md | 58 +++++++++++++++++++ .../projects/weather-api-wrapper-service.md | 2 +- 2 files changed, 59 insertions(+), 1 deletion(-) create mode 100644 src/data/projects/expense-tracker-api.md diff --git a/src/data/projects/expense-tracker-api.md b/src/data/projects/expense-tracker-api.md new file mode 100644 index 000000000..873387df9 --- /dev/null +++ b/src/data/projects/expense-tracker-api.md @@ -0,0 +1,58 @@ +--- +title: 'Expense Tracker API' +description: 'Build an API for an expense tracker application.' +isNew: false +sort: 9 +difficulty: 'beginner' +nature: 'API' +skills: + - 'Programming Language' + - 'Data modeling' + - 'User Authentication' +seo: + title: 'Expense Tracker API Project Idea' + description: 'Build an API for an expense tracker application.' + keywords: + - 'backend project idea' +roadmapIds: + - 'backend' +--- + +Build an API for an expense tracker application. This API should allow users to create, read, update, and delete expenses. Users should be able to sign up and log in to the application. Each user should have their own set of expenses. + +![Expense Tracker API](https://assets.roadmap.sh/guest/expense-tracker-api-m72p5.png) + +## Features + +Here are the features that you should implement in your Expense Tracker API: + +- Sign up as a new user. +- Generate and validate JWT tokens for handling authentication and user session. +- List and filter your past expenses. You can add the following filters: + - Past week + - Past month + - Last 3 months + - Custom (to specify a start and end date of your choosing). +- Add a new expense +- Remove existing expenses +- Update existing expenses + +## Constraints + +You can use any programming language and framework of your choice. You can use a database of your choice to store the data. You can use any ORM or database library to interact with the database. + +Here are some constraints that you should follow: + +- You’ll be using [JWT (JSON Web Token)](https://itnext.io/demystifying-jwt-a-guide-for-front-end-developers-ead6574531c3) to protect the endpoints and to identify the requester. +- For the different expense categories, you can use the following list (feel free to decide how to implement this as part of your data model): + - Groceries + - Leisure + - Electronics + - Utilities + - Clothing + - Health + - Others + +As a recommendation, you can use MongoDB or an ORM for this project, such as [Mongoose](https://mongoosejs.com/) (if you’re using JavaScript/Node for this). + + diff --git a/src/data/projects/weather-api-wrapper-service.md b/src/data/projects/weather-api-wrapper-service.md index 8f67b975e..e6402668f 100644 --- a/src/data/projects/weather-api-wrapper-service.md +++ b/src/data/projects/weather-api-wrapper-service.md @@ -42,4 +42,4 @@ Here are some tips to help you get started: - Use some package or module to make HTTP requests e.g. if you are using Node.js, you can use the `axios` package, if you are using Python, you can use the `requests` module. - Implement rate limiting to prevent abuse of your API. You can use a package like `express-rate-limit` if you are using Node.js or `flask-limiter` if you are using Python. -This project will help you understand how to work with 3rd party APIs, caching, and environment variables. It will also help you understand how to structure your API and how to handle requests. \ No newline at end of file +This project will help you understand how to work with 3rd party APIs, caching, and environment variables. It will also help you understand how to structure your API and how to handle requests.