General Information about CSC_1S004_EP Projects

General Objectives

Your assignment is to develop a Web site, working either alone or in pair.

The Web site should be dynamic, interactive, and standards compliant. It should include elements from all aspects covered in the course: structure and semantics with HTML, layout and styling with CSS, dynamic behavior and user input management with JavaScript.

Project Requirements

Pay attention to the following while developing your Web site. These criteria will be taken into account in the evaluation of your work:

Your efforts should focus on client-side development (HTML/CSS/JS). While it is fine to include some server-side development (PHP, NodeJS, etc.) this is not a requirement at all. Server-side development is only briefly touched upon at the end of CSC_1S004, after the project deadline. It should not represent a big part of your project, as this is not the main topic of this course, which focuses on client-side (front-end) development.

External Libraries

There are numerous frameworks and libraries available to help you design and develop Web sites. You are not allowed to use WYSIWIG editors such as Adobe Express. This course is about learning Web development technologies, not about the use of Web page design tools. As such , the code of your project should not be generated automatically from a tool that lets you draw the Web site and get the HTML, CSS and JavaScript without writing a single line of code.

However, it is acceptable to use frameworks and libraries that help you write your own code. For instance, third-party Javascript libraries that provide you with some specific functionality you need to implement your own dynamic behavior is completely acceptable. Most Web programmers use such third-party libraries all the time, so that they do not have to reinvent the wheel.

But be aware that you use such third-party components at your own risk: you cannot expect teachers to master those. And in your report you need to explain what you have coded yourself and what comes from third-parties. Also make sure you do not spend too much time learning how to use such a framework/library. Again, the objective of this course is to improve your skills with the core Web languages: HTML, CSS and JavaScript. Extra frameworks can be useful, but they are not in the scope of CSC_1S004.

Deliverables

You will have to upload the following items to Moodle by the project deadline (May 28th, 2025):

Possible Project Topics

You are free to define the sort of Web site you want to develop. Check with a teacher that your choice is ok. Examples:

The percentage of HTML, CSS, and JavaScript will vary among projects. Some will more strongly focus on HTML and CSS, others will involve significant amounts of scripting. Develop your project in a coherent and clean way. LoC (lines of code) count is not an objective per se. Readbility of your code, concision and elegance of solutions are more important.

If you lack inspiration, a possible topic is to develop a set of basic video games where user interaction is programed in JavaScript. A first step would be to create a Web page that displays a menu in HTML/CSS listing all those basic games, linking to different Web pages, each one hosting a different game. Examples of simple games include tic-tac-toe, snakes, etc. Start with a simple game, finsh it, then move on to a possibly more elaborate one, and so on.

game menu example

Examples from Previous Years

A broad variety, including: educative games; maze game; isometric RPG; small 3D games; quizz games; creation of a website for a friend or company; a symbolic calculator; a sound sequencer.

screenshot of a student project web page screenshot of a student project web page screenshot of a student project web page screenshot of a student project web page screenshot of a student project web page screenshot of a student project web page screenshot of a student project web page screenshot of a student project web page screenshot of a student project web page screenshot of a student project web page screenshot of a student project web page screenshot of a student project web page screenshot of a student project web page

Videos showcasing sample projects from previous years are available through Moodle.

Guidance

Avoid projects that would require storing/loading data (which would likely involve server-side programming): you will not have access to files, or this will require handling security restrictions. This includes projects such as developing a blog platform or social network. Prefer website where data can be fully described in your HTML/JavaScript code, and where you will not have to manually provide and fill a lot of data content.

Methodology

Decompose Your Project in Clear Steps

Decompose your project in a series of steps and check-points.

In particular, make sure you do not spend any class without having a working website, even if it doesn't have all the expected functionalities (do not stay for a long period of time developing code without testing. Test and validate your code all along the process.

Working in Pairs

Do not underestimate the synchronization overhead when working in pairs.

When working in pairs, make sure you merge your code frequently.

Code Quality

Your website should run correctly on the machines from the lab using Firefox. Check this is indeed the case before handing in your project. There might be errors that do not appear depending on the browser and operating system you use for development. Your Web site does not have work on older browsers such as Microsoft Internet Explorer.

Project Evaluation

If you work in pairs: