alanpjohn / hmeets Goto Github PK
View Code? Open in Web Editor NEWSubmission for Code fury by team techyons
License: Eclipse Public License 2.0
Submission for Code fury by team techyons
License: Eclipse Public License 2.0
Create a dashboard of manager. Contains manager basic information along with meeting booking facility
@pavleen14 was suggested rating to be afloat valued I somewhat agree. Please see to it.
And also I would love to have the updated ER diagram.
Join input coming from controller to db using jsbc
There will be a Recent Meetings table in the Manager and Member pages. The table contains details of past meetings that were unrated by the user. Each will have a button called Rate
which will redirect it to /feedback
This will show feedback.jsp
. The feedback.jsp
is a page where users can give feedback for the room.
com:
hsbc:
meets:
dao:
- FeedbackDao
dao.impl:
- FeedbackJDBCDaoImpl
service:
- FeedbackService
service.impl:
- FeedbackServiceImpl
entity:
- Feedback
The exception
, util
and validation
classes will be added according to code development
Get Feedback.jsp with meeting room details
Submit feedback
Get feedback summary
Implementing this into service so that we can show a summary of feedback when we show meeting room along with the rating
Home Page
GET:
route to home.jspDisplay Meeting Rooms
GET:
all rooms details
POST
request to "/"
TRUE:
throw exception - DataAlreadyExistsException()
, let user know thatFALSE:
fetch XML, parse, encrypt passwords if not already encrypted(assumption to discuss with team)GET:
req to "/login" to get login.jspLogin Page
GET:
login.jspPOST:
to authenticate user and redirectSucces:
now got a user object from homeservice
user
as session attributeadmin
, manager
, member
Failed:
InvalidCredentialsException()
As part of deliverables, following items have to submitted.
Design Documents:
Test Case Documents:
Power Point Presentation:
Short Video:
Add on:
We need to add comments on our code and it's preferred if we use a similar code comment convention
The package comments are stored in the package-info.java
/**
* Package description
*
* @author <AUTHOR>
*/
package com.hsbc.meets.subpackage;
Most of the comments for the package were implemented initially.
The class comments will be added in the .java
file for the class above the class declaration
/**
* The class description
*
* @author <AUTHOR>
*
*/
public class YourClass {
}
The method comments will be added above the method declaration
/**
* Method description ( write it like "Returns the sum" or "Prints sum")
*
* @param parameter description of parameter
* @return What we will return
* @throws Exception if something goes wrong
*/
public ReturnType function()
you can refer this document to understand how comments can be written and how they work. The bare minimum tag is for classes and packages is @author
Methods should all the neccessary fields based on method signature.
In eclipse you can type /*
above the declaration and press ENTER
to generate an empty template. If you are using the eclipse source addition functionality, just tick the generate comments checkbox to get comment templates
The previous approach and issue #22 to database queries and procedures was not working so we are starting a fresh task for it on the same branch
The sql code currently added has a few inconsistencies mostly in the naming.
tbl_
sp_
ev_
tr_
vw_
The /sql
folder will have one script to create database and table. Each table creation command will have a IF NOT EXISTS
clause which is a good practice as it supports database migration.
Every stored procedure, view, event, trigger will have individual .sql
files to boost productivity. when the project is going to be finished all the final sql scripts will be merged into one.
For database migration, a practice followed by tools such as alembic is to create revisions. So when we have to alter the .sql
files after we already finalize them, instead of editting existing queries, prefer adding modify statements underneath them. This is useful for maintaining database revisions which is extremely useful for migrations. This is not a must but it is a preferred way of writing the SQL scripts.
for example, If you use the create table sql scripts and the next day we change them to fix something, then you dont have to delete existing table to run the sql scripts again. just run the file as a whole again. The
create table
wont execute if the table already exists and the followingalter table
commands will update the structure.
To comfortably integrate the sql database code with the pull requests in coming days. SQL functionswill be implemented in order of priority. That means as user-functionalities
is the earliest pull request, all sql functions with respect to user-functionalities
will be implemented first. This allows us to finish off even the database integration part of user-functionalities
when we merge it with main
. Similarly, we implement all the sql functions for meeting-room
and then meeting-booking
and then feedback
.
user-functionalities
tbl_users
.lastlogin
to TIMESTAMP
sp
sp
sp
sp
sp_InsertIntoUsers
sp_UpdateLastLogin
meeting-room
sp
sp
sp
sp
sp
sp
sp
tr
vw/sp
ev
meeting
sp
sp
sp
sp
feedback
sp
tr
Controller servlet, should be responsible for processing the data and redirecting it accordingly
UI
All are mandatory fields
Title (input field)
Meeting Date (choose from calendar)
Start time (input field)
Duration (input field)
Meeting type ( select from options radio button)
A Ui to search for and add members
A UI to select a meeting room
Save
cancel
Rules
The date and time should be a later date and time
Meeting should be available on start date time and the duration
Seating capacity > no of attendees
Project manager credits > cph*hours (cph=credits required per hour)
Validate amenity according to the meeting type
Generate unique id
If booked successfully deduce credits
Basic Implementation Idea:
Dao
BookMeetingRoomDao: BookMeeting
Directly add the meeting details in db
Controller:
BookMeetingRoomController: BookMeeting
View:
jsp page for manager
boolean checkIfMeetingTitleAlreadyExists(String MeetingTitle)
return true if meeting name already exists and false if not
Get amenities by meeting room name(Parameter = Room Name)
Return type = list of amenities Name
There will be an Admin Page which will include
Dao:
Controllers:
As per the problem statement, deleteRoom functionality is not required, so we might include if time permits, otherwise not. #11
Service:
createRoomController:
Amenities | Credits |
---|---|
Seating capacity <=5 | 0 credits |
Seating capacity >5 and <=10 | 10 credits |
Seating capacity >10 | 20 credits |
Projector | 5 credits |
Wifi Connection | 10 credits |
Conference Call Facility | 15 credits |
WhiteBoard | 5 credits |
Water dispenser | 5 credits |
TV | 10 credits |
Coffee Machine | 10 credits |
editRoomController:
Model
Class MeetingRoom{
Int meetingRoomId;
String name
Int seatingCapacity
Int rating = 0
String[] Amenities
Int credits PerHour
Int noOfFeedbacks = 0
//Get for all set for all (except meetingId)
//constructors
}
Dao Interface : CRUD operations
Void addMeetingRoom(MeetingRoom meetingRoom) throws MeetingRoomAlreadyExistsException{
}
Void updateMeetingRoomById(MeetingRoom meetingRoom) throws MeetingRoomDoesNotExistsException{
}
List displayMeetingRoom(){
}
View/UI Layer
Controller Layer
Service layer
Exception layer
^ The plan for above layers has been discussed and will be implemented as we move ahead.
TO DO LIST :
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.