Project Description:
The is an independent realtor web application utilizing C# ASP.NET MVC Core, and provides a way to share to the public information about a realtor's property listings. A realtor can have many properties listed and a realtor can have many public users interested in the realtor's property listings. The independent realtors is the admin and the admin can authorize and set access level roles for other users to use the admin portions of the app. The primary functionality available through the site, but not limited to, will be login authentication, authorization-access restrictions, Session/cookie handing, Admin area and CRUD actions to manage the content and will be deployed to azure.
Prof. Evan Hennis' Project Grading for Anthony Hamlin, Brody Boell, Cole Cooley.
Each criteria rated as either:
- Exceptional (Full Points),
- Proficient (Partial Points),
- Competent (Partial Points),
- Novice (No Points)
- You will submit your URL to your deployed web application and Web API(probably the same URL for both), and if you did a desktop app or Unity application submit a zipped file with compiled executable. (This means I should be able to double click it and run the application without opening visual studio or anything else)
- You will submit a valid username, password, and connection string for your database so I can log in and look at your database and modify data, the same one your app uses is fine.
- You will submit the URL for your teams Github Repository, if it is private make sure you add my account which you can find by my dmacc email [email protected]. This MUST be the repo for your whole group so I should see everyone's commits. If I don't see a group member's name on any commits or a somewhat even number of them I will be questioning if those members actually did anything.
- You will submit your video presentation(Preferably a link rather than a giant file) if this is an online only course, for the web blended course the presentation is done in class on July 27th.
- You will submit a zipped file with your peer evaluation for each member of your group. Be honest, if I have reason to believe that your group is not being honest I will remove points for all members. If you started with a group and ended up on your own I expect you to write a honest self evaluation. Again if you think that you can just give yourself all the points I will give you no points.
- Make sure you also submit anything else I would need to connect to your web application and/or web api so any accounts that I should use with password or any keys that I need for the web api.
- Submit the names of all team members. Each team member will submit their own version of this since they will be submitting different evaluations and such. However things like the project, and URLs should be the same for each group member.
The grading will work as below, but the general rule of thumb is that you need to display use of every concept in the course in order to get full points.
- Make sure you are following all patterns and practices learned in the course and following industry standards.
- Also you can expect if you have gotten feedback earlier in the course saying that I wasn't counting points off but I would later that those types of things will definitely be counted off this time.
-
(150 pts)Final project: Features, functionality, user experience, code style, and coding syntax.
- (10) Proper routing techniques, route templates for website and attribute routing for web api.
- (20) Using binding models and validating all user input in a logical manner to give the users a good experience and keep your application safe.
- (10) Use tag helpers to create your forms in your web application for a nice user experience.
- (20) Create and utilize a SQL Server database using at least one data context and entity framework core to access the database. Do all your database interactions in services. You should have examples of creates, reads, updates, and deletes
- (10) Use MVC filters to clean up your code and remove code redundancy. You should not have repetitious code in the controllers/actions.
- (10) You should use user accounts, registration, login all using Identity.
- (10) You should use authorization to limit access to parts of your application for people that do not have access to them. You should also have Razor elements that are shown or hidden based on authorization.
- (10) Create and utilize state management through Sessions or Cookies
- (10) Create and utilize proper error handling techniques including having a custom error handling view
- (20) Unit test your code. You should have tests around all your business logic so everything in your services and such should be tested. I am expecting 100% coverage on your business logic since your sites are relatively small applications.
- (20) Azure works
-
(50 pts) Project presentation
- (20) Project demo, you should show all the functionality of your project in the demo
- (10) What went well during your project, successes and things you are proud of, and things you learned while doing it.
- (10) What did not go well during your project, challenges and things you struggled with, and how you would improve it if you were to do it again today.
- (10) Length of the presentation. You are targeting 5 minutes for this presentation.
-
(50 pts) Peer review
- You will complete a form for each other person in your group, unless you ended up alone by the end.
- The grades will be based on your honesty and how you were evaluated.
--- | Final Project Grading Criteria | --- |
---|---|---|
Criteria | Ratings | Pts |
--- | --- | --- |
Routing | 10 pts Exceptional Correctly using routing techniques, route templates for website and attribute routing for web api. 7 pts Proficient Missing one of/ or incorrect routing techniques, route templates for website and attribute routing for web api. 4 pts Competent Missing two of/ or incorrect routing techniques, route templates for website and attribute routing for web api. 0 pts Novice Not attempted or incorrect |
/ 10 pts |
3.5 Validation | 20 pts Exceptional Correctly using binding models and validating all user input in a logical manner to give the users a good experience and keep your application safe. 14 pts Proficient Incorrectly using binding models or missing validation on some user input or does keep your application safe. 8 pts Competent Incorrectly using binding models and/or missing validation on some user input and/or does keep your application safe. 0 pts Novice Not attempted or incorrect |
/ 20 pts |
Tag helpers | 10 pts Exceptional Use tag helpers to create your forms in your web application for a nice user experience. 0 pts Competent N/A 0 pts Novice Not attempted or incorrect 0 pts Proficient N/A |
/ 10 pts |
3.2 Database initialization | 20 pts Exceptional SQL Server database created using at least one data context and entity framework core migrations. 14 pts Proficient Database and data context out of sync. 8 pts Competent Framework core migrations not properly used 0 pts Novice Not attempted |
/ 20 pts |
MVC Services | Cont… 10 pts Exceptional Effectively used MVC filters to clean up code and remove redundancy 7 pts Proficient Mostly used MVC filters to clean up code and remove redundancy 4 pts Competent Minimally used MVC filters to clean up code and remove redundancy 0 pts Novice Not attempted |
/ 10 pts |
Identity Core | 10 pts Exceptional Implement user accounts, registration and login using identity 7 pts Proficient Implemented most of user accounts, registration and login using identity 4 pts Competent Implemented some of user accounts, registration and login using identity 0 pts Novice Not attempted |
/ 10 pts |
7. Authorization | 10 pts Exceptional Limit access to parts of website, showing/hiding elements based on authorization 7 pts Proficient Missing one of limit access to parts of website, showing/hiding elements based on authorization 4 pts Competent Missing two or more of Limit access to parts of website, showing/hiding elements based on authorization 0 pts Novice Not attempted |
/ 10 pts |
7. Session State | 10 pts Exceptional Included https and CORS, prevented XSS, prevented XSRF 7 pts Proficient (Missing https OR missing CORS) OR did not prevent one of XSS, XSRF 4 pts Competent (Missing https AND/OR missing CORS) AND/OR did not prevent one of XSS, XSRF 0 pts Novice Not attempted |
/ 10 pts |
9. Unit Testing | Cont… 20 pts Exceptional 100% business logic coverage 14 pts Proficient 70% business logic coverage 8 pts Competent 40% business logic coverage 0 pts Novice Not attempted or less than 40% business logic coverage |
/ 20 pts |
Presentation & Peer Review | 100 pts Excellent 70 pts Proficient 40 pts Competent 0 pts Novice |
/ 100 pts |
Azure Deployment | 20 pts Excellent WebSite is deployed and visible 0 pts Novice Error in Deployment |
/ 20 pts |
Custom Error Handling | 10 pts Excellent Create and utilize proper error handling techniques including having a custom error handling view 7 pts Proficient Most errors are handled 5 pts Competent Minimal error handling- Error screen is present. 0 pts No Marks |
/ 10 pts |
Total Points: 250 |