Exam project for the IDATA2301 and IDATA2306 courses
This projects aim to create a price aggregator for courses within the computer industry. The project currently offers IT, digital marketing, business, data science, and software-development-courses from a range of providers. This project also features in-house courses with a subscription model attached.
The website is currently hosted here
The website is designed according to:
- Requirements from a customer
- Design guidelines
- Accessibility rules
- Using the best software dev practices: sprints, GIT
- Javascript for interaction and dynamic updates
- Communication with a backend API
An example of a competitor website: https://www.coursera.org
This project is built using two frameworks, each representing a different side of the web application. The backend is built using Spring Boot, while the frontend is built using Vue.js. Below is a brief description of each of the:
Before you begin, ensure you have installed the latest version of Node.js.
Setup MySQL - Setup New Connection - Host: localhost Port 3306
User: root - Password: 'Your password'
run /backend/src/main/resources/db.migration/update-schema.sql
run /backend/src/main/java/no/ntnu/Application (This has to be configured with a .env file, which is not provided)
run 'npm install' to install dependencies.
To set up the frontend, you have to set up a npm configuration which runs 'run' as command
and 'serve' as Scripts (you have to select the /frontend/package.json) as package.json.
- An online web shop with landing page, price comparison page, deal and discount information, and product filter and search.
- Application state changes during the lifecycle (example: booking a hotel)
- DOM modification with Javascript
- At least one REST API request
- Responsive design
- Accessibility principles
- Aesthetically pleasing
- Follow a given theme/genre
- Code stored in Git
- Agile work in Sprints
- Reasonable code design and structure
- Authentication (frontend side)
- Secured site with HTTPS (when on your own server)
- Containers for the solution (docker-compose)
- Emails
- Advanced functionality beyond the minimum (wish lists, shareable links, stock of products)
- Live updates with WebSockets
All extras must be web-related (no extras for statistics)
- Adrian Johansen
- Di Xie
- Håkon Svensen Karlsen
- Matti Kjellstadli
- Documentation Google Drive folder containing all documents.
- Wireframes Sketches for the website, reference point for building web application.
- Mindmap Ideas and notes related to the project.
