In the project you create an application of your choice with React and/or Node. Also a mobile application created with React Native is possible.
The backend for the application does not have to be in Node. Backend does not have to be self made, ready interfaces or services such as Firebase will do. Frontend is also possible to make with some other reasonable way than React, e.g. with Vue.js, in which case it is recommended for the application have a Node backend.
Amount of credits is determined by the working hours, where one credit is 17.5 hours. The limits are 87.5 hours for 5 credits, 122.5 hours for 7 credits and 175 hours for 10 credits. It is also calculated that 9.5 hours of independent study of the techniques used in the practice work will take place for each credit.
The grading is pass/fail.
You will automatically get a failing grade if the application is not done by yourself or if the hour keeping and GitHub commit history do not match reasonably. All the hours put into the project are counted, so even working a backend with something other than Node, counts.
Reviewing course material, however, does not count.
For a passing grade it is expected that the used hours show in the end product in some meaningful way. If eg. applying for 10 credits, we expect that your application has more than one or two functionalities. An example of a good base line is that your application performs various database operations, ie. CRUD operations (create, read, update, and save). Alternatively it employs only some (but more than one) of them in various ways. Testing and for example automating the deployment pipeline and other such notable configurations are naturally positively counted towards your project's scale.
If you project has very limited functionalities/techniques, you might be asked to expand your project a bit, especially for the 7 and 10 credit versions.
Please note: It is not sufficient that implemented features work only on your machine, but they also must work in your application that is deployed to the internet.
It is also possible to do the project as a pair or a team.
The Discord channel for the Full Stack Course https://study.cs.helsinki.fi/discord/join/fullstack works also for this project.
There is no need to register for the course if you are using the technologies that the Full stack course covers. If you have doubts, send email to [email protected]
Using video tutorials can be a helpful way to learn new skills and understand concepts, especially when you're starting with a new technology or framework. However, for the full stack course project, it's essential to demonstrate your own understanding and abilities learned in the course. To ensure your project showcases your personal skills and effort, please follow these guidelines when using video tutorials as a reference:
- Purpose: Tutorials should be used as learning resources to help you understand concepts, not as templates to directly replicate.
- Expectation: After watching a tutorial, apply the knowledge gained to build something unique or extend the tutorial's example with your own features.
- Originality: Your project should be distinct from the tutorial in meaningful ways. This could include changes to the UI, added features, different functionality, or using a different tech stack.
- Examples of Modifications:
- Adding new features not covered in the tutorial (e.g., user profiles, notifications, search functionality).
- Implementing different or more advanced techniques (e.g., integrating an API, using a different database).
- Styling the application differently or using an alternative frontend framework.
- Customization: Introduce features that were not part of the tutorial to showcase your skills. These could be features relevant to the course objectives or ones that enhance the user experience.
- Examples of Unique Features:
- For a social media app: Adding groups, chat functionality, or image upload features.
- For an e-commerce app: Adding a wishlist, reviews, or a payment gateway.
- Documentation: When submitting your project, include a brief document explaining which parts of your application were inspired by the tutorial and what changes or enhancements you made.
- Justification: Specify why you chose to make these changes and how they improve or differentiate your project.
- Advanced Implementations: To further demonstrate your understanding, consider adding advanced features not covered in the tutorial, such as:
- CI/CD Pipelines: Setting up continuous integration and deployment for your application.
- Testing: Implementing unit tests, integration tests, or end-to-end tests.
- Security Enhancements: Adding user authentication, data validation, and secure handling of sensitive information.
- Original Work: Copying code directly from a tutorial without modification is considered plagiarism. Your project must reflect your own efforts and understanding.
- Credit the Source: If you use any specific code snippets or ideas from a tutorial, make sure to give appropriate credit in your code comments or documentation.
By following these guidelines, you can use video tutorials effectively as a learning tool while ensuring that your project reflects your own creativity and skills.
-
In the README of your repository you must have all of the following:
- Link to an address, where the application is running. If you're creating a mobile application, demo will be scheduled individually.
- Some user instructions and explanation of the purpose of your project (ie. what does it do), or a link to them
- Link to work hours listing. Do it as a .md, pdf, or in some way that is immediately visible (ie. no file download required)
- Sufficient precision level for time keeping is this
- The time keeping must include the total sum of spent hours
- Time keeping and repository commit history must reasonably match each other. Do intermediate commits!
- If working with a pair or a group, everyone keeps their own hours.
- If your project is split into several repositories, a link to the other repositories
-
Your repository and code base must be presentable. No out-commented or otherwise unused code or such.
If some of the above mentioned requirements are not satisfied when applying for credits, your project will not be graded and you will be asked to fix them.
Why?
Your repository is your greeting card especially when applying for a job. No recruiter will appreciate having to dig through a messy repository to evaluate your skills. (Neither will instructors) Many will not do it at all. It's a good idea to stick to good practices whenever possible.
When your project is ready for grading do ALL of the following:
(1) Register in open university to a course instance that corresponds your working hours
- FS project (5 credits): https://www.avoin.helsinki.fi/palvelut/esittely.aspx?s=otm-213e3838-c757-4839-bdb9-69dc7e23571c
- FS project (7 credits): https://www.avoin.helsinki.fi/palvelut/esittely.aspx?s=otm-b67feb5c-664a-4114-ad93-a7b982f938dc
- FS project (10 credits): https://www.avoin.helsinki.fi/palvelut/esittely.aspx?s=otm-0b8aaeb0-d19b-43ab-9fc7-496f027776c4
(2) Fill this form https://docs.google.com/forms/d/e/1FAIpQLSfJxtLyWugefPSPHynZcZnrsNt4IGqhpr5M7dF5jgZZ6ASqsQ/viewform
(3) and send an email to [email protected]
In the email you need to specify your student number and GitHub account
The project will not be graded untill ALL THREE steps have been completed
If you have a private repository, add users mluukkai and hremonen as collaborators.
The review takes roughly 4 weeks. You will get some feedback on your project as a GitHub issue.