├── README.md ├── ecommerce_web_app_backend.md ├── ecommerce_web_app_frontend.md ├── images ├── static.png └── title_image.png └── music_app.md /README.md: -------------------------------------------------------------------------------- 1 |

Web Developer Roadmap

2 | 3 | ![web roadmap](https://github.com/canopas/web-developer-roadmap/blob/master/images/title_image.png) 4 | 5 | Web Developer Roadmap is a learning path to understand web development, including frontend, backend and cloud(AWS). 6 | 7 | ## How to Learn Web development? 8 | 9 | A web development can be divided into four different parts, 10 | 11 | 1. Database 12 | 2. Backend 13 | 3. Frontend 14 | 4. Cloud(server) 15 | 16 | This roadmap consists of widely used technologies/frameworks for frontend and backend. 17 | It also includes overview about cloud(AWS) and some information about server. 18 | 19 | # Table of contents 20 | 21 | - [Sprint 1 - Basic linux commands, Version control, Web technologies and coding conventions](https://github.com/canopas/web-developer-roadmap#sprint-1---version-control-basic-web-technologies-and-coding-conventions) 22 | - [Sprint 2 - Docker, Databases and PHP](https://github.com/canopas/web-developer-roadmap#sprint-2---docker-databases-and-php) 23 | - [Sprint 3 - Golang](https://github.com/canopas/web-developer-roadmap#sprint-3---golang) 24 | - [Sprint 4 - Node.js](https://github.com/canopas/web-developer-roadmap#sprint-4---nodejs) 25 | - [Sprint 5 - Vue.js](https://github.com/canopas/web-developer-roadmap#sprint-5---vuejs) 26 | - [Sprint 6 - Useful concepts](https://github.com/canopas/web-developer-roadmap#sprint-6---useful-concepts) 27 | 28 | ## Sprint 1 - Basic linux commands, Version control, Web technologies and coding conventions 29 | 30 | ### Practical 1.1 - Basic commands and Version control 31 | 32 | - Write a commands for following operations in terminal 33 | - List all files with details in directory 34 | - Give only read permission to any file 35 | - Give all read and write permissions to any file 36 | - Get IP address of own pc 37 | - Observe disk space usage 38 | - View previously executed commands history 39 | - Linux command to install/uninstall PHP 40 | - Linux command to start/stop mysql service 41 | - Write and save any file from terminal 42 | 43 | - Perform following operations in gitlab 44 | - Create a repository to GitLab 45 | - Check git status of repository 46 | - Commit new/updated files into a git repository 47 | - Push in a git repository 48 | - Pull new changes from repository 49 | - Checkout new branch 50 | - Merge branch into another 51 | - Rebase and Squash 52 | - Create merge request 53 | - Write a command to clone [this](https://github.com/canopas/web-developer-roadmap) repo 54 | 55 | #### References 56 | 57 | - [Basic linux commands](https://www.digitalocean.com/community/tutorials/linux-commands) 58 | 59 | - [What Is Version Control?](https://about.gitlab.com/topics/version-control/) 60 | - How to use git 61 | - [Version control with git](https://www.udacity.com/course/version-control-with-git--ud123) 62 | - [Git: The Beginner's Guide to Understanding Core Version Control Concepts](https://www.freecodecamp.org/news/git-the-laymans-guide-to-understanding-the-core-concepts/) 63 | - [Git commands](https://dzone.com/articles/top-20-git-commands-with-examples) 64 | 65 | ### Practical 1.2 - Basic web technologies with coding conventions 66 | 67 | - UI design with coding standards 68 | - Design static UI given in the [link](https://github.com/canopas/web-developer-roadmap/blob/master/images/static.png) 69 | - Design responsive UI given in the [link](https://www.w3schools.com/w3css/tryw3css_templates_food_blog.htm) 70 | 71 | #### References 72 | 73 | - HTML5 74 | 75 | - [Web development bootcamp course on udemy](https://www.udemy.com/course/the-complete-web-development-bootcamp/learn/lecture/12299746?start=0#overview) - section 2 and 3 76 | - [Basic HTML and HTML5 from Free Code Camp](https://www.freecodecamp.org/) 77 | 78 | - CSS3 79 | - [Web development bootcamp course on udemy](https://www.udemy.com/course/the-complete-web-development-bootcamp/learn/lecture/12299746?start=0#overview) - section 4 and 5 80 | - [Bootstrap from Web development bootcamp course on udemy](https://www.udemy.com/course/the-complete-web-development-bootcamp/learn/lecture/12299746?start=0#overview) - section 6 and 8 81 | - [What is Flexbox?](https://css-tricks.com/snippets/css/a-guide-to-flexbox/) 82 | - [Bootstrap from Frontend libraries in Free Code Camp](https://www.freecodecamp.org/) 83 | - [Finish Responsive web design certification course from Free Code Camp](https://www.freecodecamp.org/) 84 | 85 | - Code formatting and best practices 86 | - [25 Most Used VS Code Shortcuts](https://www.crio.do/blog/vs-code-shortcuts/) 87 | - [Code formatting in VS Code](https://mkyong.com/vscode/how-to-format-source-code-in-visual-studio-code-vscode/) 88 | - [Web development best practices](https://code.tutsplus.com/tutorials/30-css-best-practices-for-beginners--net-6741) 89 | 90 | 91 | ### Practical 1.3 92 | 93 | - Unit converter 94 | - Create a unit converter that should take input from users and output the value in the asked unit (conversion units can be centimeters, meters, and kilometers) 95 | 96 | #### References 97 | 98 | - Javascript & jQuery 99 | 100 | - [Basic javascript from Web development bootcamp course on udemy](https://www.udemy.com/course/the-complete-web-development-bootcamp/learn/lecture/12299746?start=0#overview) - section 9 and 10 101 | - [Basic javascript, ES6, Regular expressions, and Debugging from Free Code Camp](https://www.freecodecamp.org/) 102 | - [Web development bootcamp course on udemy](https://www.udemy.com/course/the-complete-web-development-bootcamp/learn/lecture/12299746?start=0#overview) - section 11 and 13 103 | - [JSON, APIs, and ajax from Free Code Camp](https://www.freecodecamp.org/) 104 | - [Finish Javascript algorithms and data structures from Free Code Camp](https://www.freecodecamp.org/) 105 | - [Web development bootcamp course on udemy](https://www.udemy.com/course/the-complete-web-development-bootcamp/learn/lecture/12299746?start=0#overview) - section 14 to 16 106 | - [Finish Frontend libraries projects from Free Code Camp](https://www.freecodecamp.org/) 107 | - Difference between == and === 108 | - [Basics of jQuery](https://learn.jquery.com/using-jquery-core/) 109 | 110 | - Coding conventions 111 | - [Coding standards-1](https://medium.com/@luqman.qureshi/think-twice-code-once-c49faa8cd18) 112 | - [Coding standards-2](https://google.github.io/styleguide/htmlcssguide.html#:~:text=Use%20only%20lowercase.,with%20the%20exception%20of%20strings) 113 | 114 | ## Sprint 2 - Docker, Databases and PHP 115 | 116 | ### Practical 2.1 117 | 118 | - Install MySQL using Docker 119 | - Install MongoDB using Docker 120 | 121 | #### References 122 | 123 | - [What is docker](https://opensource.com/resources/what-docker) 124 | - [Getting started with docker](https://docs.docker.com/get-started/overview/) 125 | - [Install MySQL using Docker](https://hub.docker.com/_/mysql) 126 | - [Install MongoDB using Docker](https://hub.docker.com/_/mongo/) 127 | 128 | ### Practical 2.2 129 | 130 | - Perform following queries in MySQL 131 | 132 | - Create a table named `students` with fields id, first_name, last_name, standard, percentage, interest, etc... and insert data into it 133 | - Create table `student_attendances` with fields id, created_at, presence/absence fields and insert data into it 134 | - Create a table named `teachers` with fields id, first_name, last_name, subject, interests etc... and insert data into it 135 | - Create table `teachers_attendances` with fields id, created_at, presence/absence fields and insert data into it 136 | - Prepare queries to find student's presence/absence on a particular day 137 | - Find total absence/presence of every student 138 | - Find absent students with a percentage lower than 70. 139 | - Find a student who has higest presence 140 | - Get all student's and teacher's first_name, last_name, full_name, interest, standard, subject and total absence. 141 | 142 | - Perform following queries in MongoDB (Can use [MongoDBPlayground](https://mongoplayground.net/) to peform queries) 143 | - Create a collection named `students` with fields id, first_name, last_name, standard, percentage, interest, etc... and insert data into it 144 | - Form a query to find students with a percentage lower than 70 and interest in sport. 145 | - Count the total students with a percentage above 70 146 | 147 | #### References 148 | 149 | - [Web Development Bootcamp course udemy](https://www.udemy.com/course/the-complete-web-development-bootcamp/learn/lecture/12299746?start=0#overview) - section 24 and 25 150 | - [Mysql Subquery](https://www.mysqltutorial.org/mysql-subquery/) and [Union query](https://www.mysqltutorial.org/sql-union-mysql.aspx) 151 | 152 | ### Practical 2.3 153 | 154 | - Create a Blog application with following requirements using PHP 155 | - It should have two sides 156 | - 1. Admin 157 | - 2. User 158 | - Implement Register and login functionality for both user and admin 159 | - Admin can add posts ( post fields - title, description, created_date, author, category, image ) 160 | - Admin can decide which user can see the post 161 | - Added Posts will be visible on user side (latest first) 162 | 163 | #### References 164 | 165 | - [PHP: Language Reference](https://www.php.net/manual/en/langref.php) 166 | - [PHP: Introduction](https://www.w3schools.com/php/) 167 | - [Coding standard](https://flowframework.readthedocs.io/en/stable/TheDefinitiveGuide/PartV/CodingGuideLines/PHP.html) 168 | 169 | #### Basic Concepts 170 | 171 | - Installation WAMP/MAMP/XAMPP 172 | - How it exactly works ? 173 | - Basic Syntax 174 | - Variables, Constants, Operators & Control Structures 175 | - Conditions, Loops, Switch cases 176 | - Arrays, String and various string functions 177 | - Functions 178 | - Includes & Required 179 | - Classes & Objects & Constructors 180 | - Namespaces 181 | - Extensions 182 | - Exceptions 183 | - JSON Encode & Decode 184 | - Sessions 185 | - Cookies 186 | - File Manipulation 187 | - Indexed Array vs Associative Array 188 | - Object vs stdObject 189 | - Timeout of PHP script 190 | 191 | #### Predefined variables 192 | 193 | - http://php.net/manual/en/reserved.variables.php 194 | - $GLOBAL 195 | - $\_SERVER 196 | - $\_GET 197 | - $\_POST 198 | - $\_FILES 199 | - $\_REQUEST 200 | - $\_SESSION 201 | - $\_COOKIE 202 | 203 | #### Advanced options 204 | 205 | - Interfaces 206 | - Traits 207 | - Crons 208 | - Composer 209 | - php.ini tweaks 210 | 211 | #### Keywords 212 | 213 | - Private 214 | - Public 215 | - Static 216 | 217 | ## Sprint 3 - Golang 218 | 219 | ### Practical 3.1 220 | 221 | - Implement [Music App](https://github.com/canopas/web-developer-roadmap/blob/master/music_app.md) with given requirements 222 | 223 | #### Basic concepts 224 | 225 | - [Why Go?](https://yourbasic.org/golang/advantages-over-java-python/) 226 | - [Run the hello world program in Go](https://golang.org/doc/tutorial/getting-started) 227 | - [Go modules](https://golang.org/doc/tutorial/create-module) 228 | - [Gin framework](https://www.educative.io/edpresso/what-is-gin-in-golang) 229 | - Constants, variable types 230 | - Functions, multi return functions, init() 231 | - Packages and import 232 | - Conditional Statements and Loops 233 | - Arrays and slices 234 | - Pointers, structs, and methods 235 | - Error handling 236 | - [gofmt](https://go.dev/blog/gofmt) 237 | - [Best practicies](https://go.dev/talks/2013/bestpractices.slide#20) 238 | 239 | - Others 240 | - [JWT](https://jwt.io/introduction) 241 | - [JSON](https://www.w3schools.com/whatis/whatis_json.asp) 242 | - [REST API](https://www.edureka.co/blog/what-is-rest-api/) 243 | 244 | #### Advance concepts 245 | 246 | - Maps in Go 247 | - Concurrency and Goroutine 248 | - defer 249 | - Error handling 250 | - Panic and recover 251 | - Reflection 252 | - Type conversion 253 | - File manipulations 254 | - Logging 255 | - Authentication with JWT (JSON Web Token) 256 | 257 | #### Packages 258 | 259 | - [Gin](https://github.com/gin-gonic/gin) 260 | - [Mysql package](https://github.com/jmoiron/sqlx) 261 | - [net/http](https://golang.org/pkg/net/http/) 262 | - [File compressor](https://github.com/gin-contrib/gzip) 263 | - [Logging](https://github.com/sirupsen/logrus) 264 | - [Mongodb](https://godoc.org/go.mongodb.org/mongo-driver/mongo) 265 | - [ioutil](https://golang.org/pkg/io/ioutil/) 266 | - [os](https://golang.org/pkg/os/) 267 | - [strings](https://golang.org/pkg/strings/?m=all) 268 | - [parse static file to binary](https://github.com/markbates/pkger) 269 | - [null value handler](https://github.com/guregu/null/tree/v3.5.0) 270 | - [JWT](https://github.com/dgrijalva/jwt-go) 271 | - [socket.io](https://github.com/googollee/go-socket.io) 272 | - [sentry](https://github.com/evalphobia/logrus_sentry) 273 | 274 | ## Sprint 4 - Node.js 275 | 276 | ### Practical 4.1 277 | 278 | - Implement one-one real time chat application 279 | 280 | ### Practical 4.2 281 | 282 | - Implement an [Ecommerce App](https://github.com/canopas/web-developer-roadmap/blob/master/ecommerce_web_app_backend.md) with given requirements 283 | 284 | #### References 285 | 286 | - [yarn](https://classic.yarnpkg.com/en/docs/getting-started) 287 | - [npm](https://nodejs.org/en/knowledge/getting-started/npm/what-is-npm/) 288 | - [yarn vs npm](https://www.knowledgehut.com/blog/web-development/yarn-vs-npm) 289 | - [node](https://nodejs.org/en/about/) 290 | - [Why node.js?](https://www.toptal.com/nodejs/why-the-hell-would-i-use-node-js) 291 | - Basic concepts: 292 | - [CommonJS and ESModule](https://www.freecodecamp.org/news/modules-in-javascript/) 293 | - [Console](https://nodejs.org/api/console.html) 294 | - [Scope](https://scotch.io/tutorials/understanding-scope-in-javascript) 295 | - ['this' keyword part 1](https://github.com/getify/You-Dont-Know-JS/blob/1st-ed/this%20%26%20object%20prototypes/ch1.md) 296 | - ['this' keyword part 2](https://github.com/getify/You-Dont-Know-JS/blob/1st-ed/this%20%26%20object%20prototypes/ch2.md) 297 | - Understanding package.json 298 | - Import/export require 299 | - Callbacks 300 | - async-await 301 | - async.waterfall() 302 | - [Ref](https://webapplog.com/node-js-fundamentals-a-concise-overview-of-the-main-concepts/) 303 | - [Event loop](http://blog.mixu.net/2011/02/01/understanding-the-node-js-event-loop/) 304 | - Node mailer to send emails 305 | - [Best practices](https://code.tutsplus.com/tutorials/24-javascript-best-practices-for-beginners--net-5399) 306 | 307 | - Express.js 308 | - [Installation](https://expressjs.com/en/starter/installing.html) 309 | - [Express Generator](https://expressjs.com/en/starter/generator.html) 310 | - [Routing](https://expressjs.com/en/starter/basic-routing.html) 311 | - [Host static files](https://expressjs.com/en/starter/static-files.html) 312 | - [Template engine(ejs)](https://expressjs.com/en/guide/using-template-engines.html) 313 | - Body parser 314 | 315 | ## Sprint 5 - Vue.js 316 | 317 | ### Practical 5.1 318 | 319 | - Implement frontend of [Ecommerce App using Vue.js](https://github.com/canopas/web-developer-roadmap/blob/master/ecommerce_web_app_frontend.md) with given requirements 320 | 321 | #### References 322 | 323 | - [Get started with Vue.js](https://v3.vuejs.org/) 324 | - [Tailwind css for beginners](https://www.youtube.com/watch?v=bxmDnn7lrnk&list=PL4cUxeGkcC9gpXORlEHjc5bgnIi5HEGhw) 325 | - [Tailwind css tutorial](https://tsh.io/blog/tailwind-css-tutorial/) 326 | - [Pinia](https://pinia.vuejs.org/introduction.html) 327 | 328 | - Concepts 329 | - What is vue.js ? 330 | - Getting started 331 | - Installation 332 | - Application and component instances 333 | - Template syntax 334 | - Data properties and Methods 335 | - Computed Properties and Watchers 336 | - Class and Style Bindings 337 | - Conditional rendering, conditional style binding 338 | - List rendering 339 | - Event Handling 340 | - Form input bindings 341 | - Component Basics 342 | - Props 343 | - Component registration 344 | - Slots 345 | - Template refs 346 | - State management 347 | 348 | ## Sprint 6 - Useful concepts 349 | 350 | #### Concepts 351 | 352 | - [Http Protocols](https://www.tutorialspoint.com/http/) 353 | - [Asynchronous vs synchronous behaviour](https://www.geekinsta.com/difference-between-synchronous-and-asynchronous-programming/) 354 | - Caching(Understanding of Redis) 355 | - Testing : unit and feature testing overview 356 | - [Docker in detail](https://docker-curriculum.com/) 357 | - Nginx vs Apache server 358 | - Server Login with Password/SSH Keys 359 | - IP tables 360 | - Php-fpm and httpd 361 | - SSH, SSL, certificates and keys 362 | 363 | #### Cloud 364 | 365 | - [What is AWS?](https://searchaws.techtarget.com/definition/Amazon-Web-Services) 366 | - S3 367 | - EC2 368 | - RDS 369 | - Elasticache 370 | - Route 53 371 | - SES 372 | - Cloudwatch 373 | - VPC 374 | - [AWS Lamda](https://www.guru99.com/aws-lambda-function.html) 375 | - [AWS API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/welcome.html) 376 | - [Microservices](https://www.educative.io/blog/microservices-architecture-tutorial-all-you-need-to-get-started?affiliate_id=5082902844932096&utm_source=google&utm_medium=cpc&utm_campaign=platform2&utm_content=ad-1-dynamic&gclid=Cj0KCQjwk8b7BRCaARIsAARRTL6juttpPjrgo_hRVSuYm_PvM-KenAvrRRsxNxt1zyfp8R2mQn5_zHwaAtaiEALw_wcB) 377 | - [What are microservices? How AWS implement it?](https://relevant.software/blog/microservices-on-aws/) 378 | - [Microservices implementation using Go](https://blog.canopas.com/golang-serverless-microservices-with-gin-f3c2a4943a6d) 379 | 380 | #### Additional 381 | 382 | - [Golang roadmap](https://github.com/Alikhll/golang-developer-roadmap) 383 | - [NodeJS roadmap](https://github.com/aliyr/Nodejs-Developer-Roadmap) 384 | -------------------------------------------------------------------------------- /ecommerce_web_app_backend.md: -------------------------------------------------------------------------------- 1 | # E-commerce App backend using NodeJS 2 | 3 | You need to build Backend of given APP using raw queries and [sequelize](https://sequelize.org/docs/v6/getting-started/). 4 | 5 | ## Requirements 6 | 7 | Create 2 projects, 8 | - using Raw queries 9 | - using Sequelize 10 | 11 | ### Technologies 12 | 13 | - Decide database structure(tables, relations and models) 14 | - Can use [typeScript/javaScript](https://www.typescriptlang.org/docs/handbook/typescript-from-scratch.html) 15 | - Use [express.js](https://www.tutorialspoint.com/nodejs/nodejs_express_framework.htm) and [ejs](https://www.digitalocean.com/community/tutorials/how-to-use-ejs-to-template-your-node-application) template engine 16 | 17 | ### Application will have two type of users : 18 | 19 | - Admin - Should have Read/Write access 20 | - User - Should have Read access only, except Favourite/Unfavourite functionality 21 | 22 | **Note:** Admin is also a user. Admin should have all access same as user. Additionally they can modify the content(categories, sub categories, products). 23 | 24 | 25 | ## Admin APIs 26 | 27 | - SignUp 28 | - SignIn 29 | - Create/Update/Delete categories 30 | - Create/Update/Delete sub categories 31 | - Create/Update/Delete products 32 | 33 | ## User APIs 34 | 35 | - SignUp - Send mail to the users after signUP from API only 36 | - SignIn 37 | - FindAll and FindOne categories 38 | - FindAll and FindOne sub categories 39 | - FindAll and FindOne products 40 | - Get products of given category/subcategory 41 | - Search product from given string with name, price 42 | - Favourite/Unfavourite products 43 | - Get own favourited products 44 | - Create API to send mail to the admin regarding to issues. 45 | 46 | 47 | -------------------------------------------------------------------------------- /ecommerce_web_app_frontend.md: -------------------------------------------------------------------------------- 1 | # E-commerce Web App using VueJS 2 | 3 | You need to build Frontend of given APP. 4 | 5 | ## Requirements 6 | 7 | ### Technologies 8 | 9 | * Can use [typeScript/javaScript](https://www.typescriptlang.org/docs/handbook/typescript-from-scratch.html) 10 | * Use [pinia](https://medium.com/canopas/vue-state-migrate-from-vuex-store-to-pinia-7db0eab864fd) store for state-management 11 | * Use [Tailwind Css](https://tailwindcss.com/docs/installation) 12 | 13 | ## Roadmap 14 | 15 | - SignUp/SignIn for Admin and User 16 | 17 | - Design UI and Integrate APIs for Categories, SubCategories, and Products. 18 | - Admin can Create/Read/Update/Delete all 19 | - User can only view all 20 | - Filter product by category/subcategory 21 | - Search products with name, price, etc.. 22 | - Favourite/Unfavourite products 23 | - Retrieve favourite products of own 24 | 25 | - Design contact page UI 26 | - User can send email to admin regarding to any issue/defect in product -------------------------------------------------------------------------------- /images/static.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canopas/web-developer-roadmap/8ec4a91bdfb4508f3eae135ae9c55c57090f217b/images/static.png -------------------------------------------------------------------------------- /images/title_image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canopas/web-developer-roadmap/8ec4a91bdfb4508f3eae135ae9c55c57090f217b/images/title_image.png -------------------------------------------------------------------------------- /music_app.md: -------------------------------------------------------------------------------- 1 | # Music App 2 | 3 | ## Description 4 | 5 | * Create a project that will enable admin or end-users to register and login to the app and can manage below data with golang and MYSQL(Recommended : gin framework). 6 | 7 | ## Requirements 8 | 9 | ### Technologies 10 | - Gin framework 11 | - Sqlx or Gorm 12 | - JWT 13 | 14 | ### Application will have two type of users : 15 | 16 | - Admin - Should have Read/Write access 17 | - User - Should have Read access only, except Favourite/Unfavourite functionality 18 | 19 | **Note:** Admin is also a user. Admin should have all access same as user. Additionally they can modify the content. 20 | 21 | ## Models 22 | 23 | * Artist 24 | - id 25 | - name 26 | - image_url 27 | - created_at 28 | - updated_at 29 | 30 | * Album 31 | - id 32 | - name 33 | - description 34 | - image_url 35 | - published_at 36 | - is_published 37 | - artist_id 38 | - created_at 39 | - updated_at 40 | 41 | * Track 42 | - id 43 | - name 44 | - index 45 | - track_url 46 | - image_url 47 | - album_id 48 | - is_published 49 | - created_at 50 | - updated_at 51 | 52 | * Playlist 53 | - id 54 | - name 55 | - description 56 | - image_url 57 | - is_published 58 | - created_at 59 | - updated_at 60 | 61 | * Favourite-tracks 62 | - id 63 | - track_id 64 | - user_id 65 | - index 66 | 67 | 68 | ## APIs for admin authentication 69 | 70 | * Admin Register 71 | * Admin Login 72 | 73 | ## APIs for user authentication 74 | 75 | * User Register 76 | * User Login 77 | 78 | ## APIs for admin functionalities 79 | * Create/Read/Update/Delete artist 80 | * Create/Read/Update/Delete album 81 | * Create/Read/Update/Delete track 82 | * Add tracks to album 83 | * Remove tracks from album 84 | * Create/Read/Update/Delete playlist 85 | * Add tracks to playlist 86 | * Remove tracks from playlist 87 | * Get playlists 88 | * Get playlist and tracks by playlist id 89 | 90 | ## APIs for user functionalities 91 | * Fetch all albums 92 | * Fetch all tracks 93 | * Fetch all tracks by album Id 94 | * Get playlists 95 | * Get playlist and tracks by playlist id 96 | * Favourite/unfavourite tracks 97 | * Retrieve favourite/unfavourite tracks of own 98 | --------------------------------------------------------------------------------