Project
Introduction
For the project for Web Development 2, you will create a web application from scratch over a five-week period. You are encouraged to create a useful and meaningful web application that addresses a real-life problem, so that you can keep it running after the completion of the course and have it in your portfolio.
You will be responsible for the entire development process, from idea generation to deployment. It is recommended to use the agile development methodology, which means working in three short sprints of 1 week each.
The project consists of three phases:
Phase | Description |
---|---|
Phase 1 | Project Selection, Planning, and Design |
Phase 2 | Project Development and Implementation |
- | Sprint 1 |
- | Sprint 2 |
- | Sprint 3 |
Phase 3 | Project Deployment |
- | Self-Reflection |
- | Showcase |
Phase 1: Project selection, planning, and design
For this phase, you have three big choices to make for your project.
1. Individual or Group
Individual Projects: Working individually gives you complete control over the project. You are responsible for every aspect of the application, from ideation to deployment. This can be a great opportunity to challenge yourself and showcase your ability to work independently.
Group Projects: Working in a group allows you to share the workload, learn from each other, and experience working as part of a team. It's a great way to understand how to collaborate effectively, a key skill in the professional world. However, remember that successful group work requires clear communication, shared responsibilities, and mutual respect among all members.
Group projects should show a greater scope or depth to account for the combined efforts of the group members. For example, a group project could be a more complex application, or a more polished version of an individual project.
Please make your choice considering your comfort level, learning goals, and the project's requirements. Remember, the ultimate goal is to learn and create a web application that you're proud to showcase.
2. Technologies
You are free to choose any technologies to work with within the Next.js framework. Here are the recommended technology levels based on the content covered in this course:
Level | Weeks Covered | Description |
---|---|---|
Starter | 1 - 4 | At the very least, your web app must be interactive. |
Intermediate | 1 - 8 | Fetch data from an external API and display it. Recommended level for most students. |
Advanced | 1 - 10 | If you're up for a more comprehensive challenge, consider implementing authentication, a database, and/or the use of any additional libraries into your web application. Libraries can be used to add extra functionality, handle complex tasks, or improve your development process. |
Expert | 1 - 13+ | For those aiming for an in-depth understanding, aim to build a full-stack application with a RESTful API backend. |
For the user interface, you can choose from several options: pure CSS, Tailwind CSS, Tailwind CSS component libraries, or other component libraries.
It's crucial to select the right technology level for your project, one that aligns with both your current skills and your learning aspirations. While it's exciting to explore advanced concepts and stretch your abilities, remember that the ultimate goal is a successful, functioning project that you can be proud of. Consider the complexity and feasibility of your idea, your familiarity with the technologies, the time frame, and your capability to tackle challenges that might arise. It's perfectly okay to start at a comfortable level and gradually incorporate more advanced features as you gain confidence and expertise. The journey of learning and development is just as important as the end product. I want you to enjoy this project!
3. Project Idea
Your project idea should be something you are interested in and motivated to develop! Keep in mind that your project idea and scope will be shaped by your choice of working individually or in a group, as well as the technologies you choose to use. Here are some project ideas for each technology level:
Starter Level: At this level, projects should focus on interactivity and user engagement. Ideas include:
- Quiz application: Users answer a series of questions and get a score at the end.
- Personal portfolio: Showcase your work, skills, and background.
Intermediate Level: At this level, your application should interact with an external API. Some ideas could be:
- Weather application: Fetch weather data from an API and display it based on the user's location or a location they input.
- News application: Fetch news from an API and display the latest news or news based on a specific category.
- Movie database: Fetch data from a movie API and allow users to browse different movies.
- More ideas? Peruse the public APIs (opens in a new tab) repository on GitHub for inspiration.
Advanced Level : For this level, consider creating an application that involves user authentication, a database, and additional libraries. Here are a few ideas:
- Todo list with user accounts: Users can create an account, log in, and manage their own todo lists.
- Recipe sharing platform: Authenticated users can share their own recipes, browse, and comment on other users' recipes.
- Book review platform: Users can browse books, write reviews, and read reviews written by other users.
Expert Level: At this level, aim to build a Full RESTful API backend. For example, you could take any one of the above examples and build a full-stack application with a RESTful API backend.
- An API for a todo list application: Users can create, read, update, and delete todo items. Then, build a frontend to interact with this API.
- An API for a blog platform: Users can create, read, update, and delete blog posts. Then, build a frontend to interact with this API.
- An API for a recipe sharing platform: Users can create, read, update, and delete recipes. Then, build a frontend to interact with this API.
These are just a few examples, and you're welcome to come up with your own unique project idea. The most important thing is that your project is something you're excited about and interested in building. The more engaged you are with your project, the more you'll learn and the better your final product will be.
This course is designed to introduce you to web application development, not to build a massive, complex project—that's what your capstone course next semester is for! While I encourage creativity, it's crucial to keep your project manageable and focused on demonstrating your understanding of the technologies we're covering. A well-executed simple project is better than an overly ambitious one that remains unfinished. So, let's save those larger project ideas for your capstone course and concentrate on building a successful, feasible application right now!
Submission Instructions
This is an individual assignment. Everyone completes the project description, even if you are working in a group for the project.
In a MS Word document, write a project description that includes the following information. Submit the document to D2L Brightspace.
- If you are working within a group, the names of your group members.
- Name of your web application.
- A description of your project idea.
- A list of the features you plan to implement in your web application.
- A list of the technologies you plan to use, e.g. specific APIs, Cloud Firestore, component libraries or other additional libraries
- An architectural description of your web app. Describe the pages and components of your application. You can use a diagram to illustrate the architecture.
Don't worry if your project idea changes as you start working on it. The purpose of this phase is to get you thinking about your project and planning ahead. You can always adjust your project idea and features as you progress through the development process.