This repository holds software development course materials for Digital Product Jam - a joint course run by Bezalel Academy of Art and Design, and the Hebrew University.
We all engage with digital products in daily life: we work with them, we express ourselves with them, we communicate through them, we discover information with them.
Students in the course will work in front of clients from the "real world" to learn about their audience as well as their business needs, in order to present solutions in the form of digital products, which they will design, develop, and deploy.
Students will work in teams of designers and developers and will experience product development processes, team work, and specifically dynamics between developers and designers in developing working products - just like in product development in the software industry.
- Experience of working in teams of designers and developers that is similar to "real" work in the software industry
- Experience of design, development and product management in front of "real" clients
- Experience of product development for "social good" organizations
- The application of web technologies towards the delivery of a working product (Development stream)
- The application of user interface design, branding and packaging toward the delivery of a working product (Design stream)
We encourage you to ask questions and discuss technical issues with your classmates and the course staff. You can do that on the discussion forum for the course.
If you need help with any of the course materials, you can attend office hours. Office hours are held on Google Meet, and can be scheduled at the link below. You can also ask questions on the discussion forum for the course - we really encourage you do do this and to learn from other partcipants in the course as much as possible.
- All technical assignments will be added here
The majority of the grading of the course is related to team work. However, there are a number of assignments related to software development, where you are graded individually. These assignments must be submitted in the following way:
- All code must be commited to your own code repository (which is either a "copy" or a "fork" of an original codebase for the assignment), hosted on GitHub
- The application must be deployed and accessible via a public URL (this will happen automatically if Vercel is configured correctly for your application, but you should also verify on a per-assignment basis)
- On completion, submit your task by adding a comment with the following information to the open issue for the task here:
- the URL to your GitHub repository
- the public URL of the working application
- All tasks must be submitted by end of day on the Tuesday before the class (class is on Wednesday)
- Technical requirements document
- Implement one end to end functional flow
- Implement a screen to wireframes
- Implement a screen to final design
For assignments and also for teamwork, we grade your programming contributions based on the following criteria:
- Usability the product
- Review of the code (quality, abstractions, etc)
- Evidence of solutions based on learning materials
- Alignment with the design prototype (if any)
- Alignment with overall product goals (if any)
NOTE: Remember, this is primarily a practical course with work done in teams. This is reflected in the overal grading structure for the course. The grading was discussed in lesson one, and you can see the full details here.
You can see all the required software setup for the course in the Setup Guide.
We provide a starter kit for all software development, available here.
- All slides from lessons are available here
- Briefs - briefs for team work will be here
- Presentations - All presentations from lessons will be available here
- Team Submissions - All team work submissions to be submitted here
- A template for the Technical Requirements Document
We have some videos to help explain concepts or integrations that we don't get time to cover in detail in class. We indicate the year the video was recorded in case there are slight changes between the video and what you encounter in the course. See the YouTube channel here, and links to specific videos below.
- Technical requirements document (2024)
- Configuring Vercel For Your Project/Repository (2023)
- Vercel Environment Variables Overview (2022)
- Supabase (Database) UI Overview (2022)
- Next/Supabase API Overview (2022)
- Google Drive Integration Overview (2022)
- Random Team Generator Overview (2022)
We provide a collection of reference materials for the course:
If you have no prior experience in HTML, CSS, or JavaScript, or, you want to refresh your knowledge, then it is recommended you take the following free courses at Codecademy, in the suggested order below. You will not be graded on your work for these courses on Codecademy.