Diving Deeper into Web Development

Author: COPS SDG Published on: June 7, 2021

Web Development

Due Date: June 13, 2021 type: Mandatory

Introduction

Web development is a basic skill that is often said as a good start to the development field. This week you will learn the basics of web development. You will get familiar with HTML, CSS, and JavaScript. On completion, you will be able to make simple static websites for both desktop and mobile.

Resources

Fundamentals

Developer Tools

Developer Tools | The Odin Project

DOM Manipulation

DOM manipulation | The Odin Project

JavaScript HTML DOM

JavaScript and the HTML DOM - Tutorial Playlist

Events in JavaScript

Introduction to events - Learn web development | MDN

Responsive Web Design

Responsive design is making webpages compatible with all screen sizes

Responsive Design | The Odin Project

Media queries - CSS: Cascading Style Sheets | MDN

CSS Frameworks

You’ve spent plenty of time building up a great base of knowledge of HTML and CSS and even design. But it’s still a pain in the butt to lay out everything manually and keep repeating yourself all the time when writing your code. If only there was a way to save yourself all kinds of effort…

Frameworks to the rescue! Frameworks let you focus more on building great sites and less on how they are actually coded up on the front end. They are great for learning and great for rapidly producing sites.

  • TailwindCSS 2.1


Tailwind CSS - Rapidly build modern websites without ever leaving your HTML.

Responsive Design - Tailwind CSS

Optional Stuff

Emmet

Emmet in Visual Studio Code

Challenge

As an aspiring developer, you'd need to keep building things to keep your knowledge on tips. Now that you are good to go with the basics of Web Development, we want you to build one of the games from the following list on your own.

  1. Tic-Tac-Toe Game
  2. Sudoku game

You have to provide your Repo and Deployed URL as part of submission

Rules

  • The project must contain three files index.htmlmain.jsstyle.css, and other static files like images only. Though to make code more readable, you may split the code into multiple files.
  • Using plagiarised code or readymade templates will lead to a penalty on your score. We can easily recognize it ;)

Judging

The evaluation would be done mainly on the following basis:

  1. User Interface and User Experience
  2. Authenticity and readability of the code
  3. Completion of mentioned tasks
  4. Bonus Points for implementing extra features depending on your creativity😉

Remember, the deadline for this week's task is June 13th, 2021, 23:59.

Tic Tac Toe

Objective: You need to build a Tic Tac Toe game

Tasks:-

  • Task 1: Implement a two-player mode that allows two people to compete against each other.
  • Task 2: Add a single-player mode that allows users to play with an intelligent bot that never loses.
  • Task 3: Add an option to select which shape to begin with (X/O).
  • Task 4: In single-player mode, add an option to choose who will start first - computer or player.
  • Extras: You may keep a record of scores and use player names for interactivity.

Resources

Minimax Algorithm in Game Theory | Set 3 (Tic-Tac-Toe AI - Finding optimal move) - GeeksforGeeks

freeCodeCamp : Build a Tic Tac Toe Game

Sudoku

Objective: You need to build a Sudoku board game.

Tasks:-

  • Task 1: Implement a Sudoku game. (The board may remain the same every time).
  • Task 2: Implement a board generator and generate a random board in every game. You may use backtracking or naive approaches to generate the board.
  • Task 3: Add a timer to the game, where the user may select a particular time to complete the game within it. Bonus: As the time reaches 0, the user can be warned about the time running out.
  • Task 4: Warning the user about incorrect inputs and user engagement.
  • Extras: To make the game more engaging, you may provide hints if the user is stuck for like 10-20 seconds.

Resources

Sudoku Game using HTML, CSS, and JavaScript

Generating and solving Sudoku puzzles with Python

Program for Sudoku Generator - GeeksforGeeks

Submission

As done in the previous week, you'll fork the repository, add your changes to the repo, and deployed website link into the list of submissions in the [WebDev.md](http://webdev.md) file. Submit pull requests from your newly created branch for this challenge.

COPS-IITBHU/csoc-2021-task-1