CE4208 Distributed Systems
Layered DS Assignment
1.Overview
CE4208 Distributed Systems Layered Distributed Systems Assignment
Your task is to develop a web application (outlined below) and deploy it on a virtual machine. Feel free to use any Jakarta EE container and database you like. However, your sources must be submitted as a NetBeans project. All features should be implemented using Jakarta EE 10 (EJB, entity classes, persistence API) and JSF/HTML only. Do not use any other frameworks such as Hibernate or Spring. If you really “need” to use any other framework/library, you must first confirm with me that it is ok to use these.
For any queries, please refer to the question and answer section on the module’s Discussion Brightspace page.
2. Description
Your task is to write an online job marketplace (think freelancer, upwork, gigster or something similar). Job requester post their job descriptions to the marketplace and registered freelancer can offer to undertake the job. For this project, requester include a fixed price for the job to be undertaken – there is no bidding/negotiating. Further, there is no need to implement a real payment system – freelancer are paid with virtual tokens only.
2.1 Functional Requirements
Access to the job marketplace is limited – you must provide an authentication scheme. Access rights are role based, where your system provides three roles: provider, freelancer and administrator.
• Provider can perform the following tasks:
o Create a job description (job is marked “open”). A job description includes:
▪ Title
▪ Unique Job ID (should be generated by the system)
▪ Keywords
▪ Job description
▪ Payment offer
o List all job descriptions posted by the provider.
o Remove an open job description.
o View profiles of any freelancer that offered to undertake a job description.
o Accept a freelancer for a posted job description (assign the job to a freelancer that offered to undertake the job). Once a freelancer has been accepted, the job will be marked as “closed” .
o Mark a job description as completed (when a freelancer has completed the job). Once a job is completed, the “payment” will be assigned to the freelancer.
• Freelancer can perform the following:
Page 1 of 3
CE4208 Distributed Systems Layered DS Assignment
o Browse through all open job offers (offers that have not yet been assigned to a freelancer and have not yet been completed).
o Search job offers by keyword (list all offers that include the specified keyword) and browse through the search result.
o Search job offer by unique Job ID.
o Offer to undertake an open job description.
Page 1 of 3
CE4208 Distributed Systems Layered DS Assignment
o Revoke an offer to undertake a job (only before the requester has accepted the freelancer).
o Edit their profile - must contain at least name, Freelancer ID (unique, assigned by system), list of skills and a message to job requestors (allow at least 500 characters) .
o View the amount in their “payment” account.
• Administrators can perform:
o Register freelancer to the database.
o Remove freelancer from the database.
o Register job provider to the database.
o Remove job provider from the database.
o Remove any job description from the system (in any state, i.e. “open”, “closed” or “completed” .
• A logging facility:
o Every time a requestor accepts a freelancer or marks a job as completed a corresponding
entry is added to the log (either a log-file or database table).
o Every time a freelancer offers to undertake a job description a corresponding entry is added to the log (either a log-file or database table).
2.2 Technical Requirements
Your solution must implement all features using Jakarta EE (EJB, entity classes, persistence API) and JSF/HTML only. Interaction with the database (queries and updates) must be via the Java Persistence API (JPA). It is ok to use JDBC for creating your tables and filling them with initial content.
Your solution must also have the following properties:
• All information (posted job descriptions, users of the system (provider, freelancer, administrators) and their details) must be kept in a database.
• You must use at least one Session Jakarta Enterprise Bean (either stateless or stateful) that is remotely accessible (in principal – you do not need to use remote access).
• Your web interface must utilize:
o At least one RequestScoped managed bean.
o At least one SessionScoped managed bean. o At least one composite component.
o At least one custom converter.
o At least one custom validator.
o JSF Templates on all pages.
o Include a JSF snippet in different locations on two JSF pages.
• Your application must be resilient to SQL Injection Attacks.
Page 2 of 3
CE4208 Distributed Systems Layered DS Assignment
3. Deadline and Deliverables
Deadline for submission of your solution is 17:00h on Friday, 26th April (Week 12).
Please submit your solution as a single zip, 7-zip or rar archive (please do not use any other format and do not remove the extension from the archive) via the module’s SULIS page (submit your NetBeans project (including all source code) and your Report.
You also need to demonstrate your working solution. This demonstration focuses on the functional and technical requirements. I expect demonstrations to take place in week 12 or 13 – preferably during lab hours (Friday 09:00h-11:00h), but can be arranged at different times, too .
5. Marking
The project is worth 25% of the module
Marks for this assignment are distributed as follows:
Application meets all functional requirements (0.75 per bullet point) 15 Application meets all technical requirements (1 per bullet point) 10
请加QQ:99515681 邮箱:99515681@qq.com WX:codinghelp
- HGC环电强化国际业务领导架构 谭君骥及Ravindran Mahalingam分别担任专精职务
- 海伯森六维力传感器:助力人形机器人产业发展的创新力量
- 达闼董事长黄晓庆:以技术破局致胜从未止步
- 从辅助到核心,企业如何基于AI Agent升级品牌数字营销
- 国产2.5亿超高分辨率图像传感器发布,主要面向机器视觉领域
- 西部数据推出多款超高速、大容量存储解决方案
- 中关村e谷承办“科创耀未来 奋进谱新篇”企业家创新论坛圆满落幕
- 航科卫星“汕头数字一号”卫星发射成功!
- Gartner 最新魔力象限出炉!ManageEngine卓豪成功入围
- 科技重塑物流,英特尔&集和诚加速智慧物流发展!
- 数智赋能 向“新而行” 坦克与装甲车辆学术与发展论坛召开
- 赛诺威盛:大孔径专科化CT领航者
- 网易硬刚腾讯 两大游戏玩家之间的口水仗不断
- 全球“最独特”的一台华为 nova 6 5G 版手机是什么样子的?
- 拼多多抖音淘宝京东,谁是真低价?