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
- 赛诺威盛:大孔径专科化CT领航者
- 网易硬刚腾讯 两大游戏玩家之间的口水仗不断
- 全球“最独特”的一台华为 nova 6 5G 版手机是什么样子的?
- 拼多多抖音淘宝京东,谁是真低价?
- 老杨第一次再度抓握住一瓶水,他由此产生了新的憧憬
- 丰田章男称未来依然需要内燃机 已经启动电动机新项目
- B站更新决策机构名单:共有 29 名掌权管理者,包括陈睿、徐逸、李旎、樊欣等人
- 苹果罕见大降价,华为的压力给到了?
- 三明列东又有房子要拆迁!住这里的人要发了!
- 放大招后,广州又忍不住了…
- 私募积极加仓,百亿股票私募仓位指数创出近八周新高
- 他,传闻中马云最想见的人
- 升级的脉脉,正在以招聘业务铺开商业化版图
- 如何经营一家好企业,需要具备什么要素特点
- 智慧驱动 共创未来| 东芝硬盘创新数据存储技术