WannaWork - Job Matching

Software Engineering Project at the University of Trento

What is WannaWork?

WannaWork is a Single Page Application designed to facilitate local job matching. It connects students, who can create profiles, upload resumes, and search for part-time jobs, with local employers, who can post jobs and manage applications.

The Problem & Solution

It was created to solve the difficulty students face in finding flexible part-time jobs and to digitize local job hunting, which often still relies on paper resumes. By centralizing this process, it creates a direct bridge between small businesses and local youth, boosting the economy and youth employment.

My Role in the Team

This was a group project. I actively contributed to the initial analysis phase (D1) and was entirely responsible for drafting the design document (D2), developing the complete codebase (Frontend and Backend), and writing the final self-evaluation (D4). The D3 document and the Business Plan were handled by other team members and are included here only for project completeness.

Tech Stack

  • Frontend: Vue.js 3 (Composition API), Pinia, Vue Router, TailwindCSS, and DaisyUI.
  • Backend: Node.js, Express.js (RESTful APIs), JWT for stateless authentication, bcryptjs.
  • Database: MongoDB (NoSQL) with Mongoose ODM.
  • Testing & DevOps: Jest, Supertest, OpenAPI (Swagger), Docker, Nginx, Let's Encrypt. Dual deployment (Render.com and Self-Hosted on Arch Linux).

Engineering Documentation

D1 - Requirements Analysis: Pitch, functional/non-functional requirements, Use Cases, User Stories, and mockups.
Download
D2 - Design & Implementation: Architecture, RESTful APIs, E-R schema, testing, and deployment.
Download
D3 - Analysis & Design: Advanced UML Diagrams (Component and Class diagrams).
Download
D4 - Self-Evaluation: Critical analysis and conclusions.
Download
Business Plan: 5-year financial projections, cost and revenue analysis.
Download