cs3226-lab's People
Forkers
lvl100pcs3226-lab's Issues
More ways to edit
Give another view for editing the student data. For now, most groups show edit feature one student at a time, as that is what was asked in Lab4. However, notice that for example after a CS3233 Mini Contest has been completed, the lecturer has to click N edit buttons, update that particular Mini Contest scores of all students, then click N update buttons, one after another... This should be simplified by having another view where the lecturer can edit/upload all N scores of a certain Mini Contest, a certain Homework, a certain Kattis set, etc in three steps only: click to open this new view, enter N data, and then click one single update button only. Do you need to change your underlying database schema or is there another way?
Show default student list for achievements page
Show the list of student for the default selected (achievements/tier) options
Change DB references to scores to the Scores Table
- index page
- student page
- edit student page
- change Student migration file to remove set scores
Performance and/or scalability challenge
(CAN BE CHALLENGING, read ahead): Improve the loading your ranklist app (try enlarging N to 10 000 for example) and basically any other aspects that can be optimized, use tool like Google PageSpeed Insights or the Google Chrome built-in stopwatch (network tab) to help you check this. You may need to read ahead for a few technical insights.
detailed scores
scores breakdown
Info for you all the read.
Image (default photo)
Image guys... Image...
Social media challenge
(CAN BE HARD for those who have not tried this before): Do a self-study on Facebook Developers Page to add Facebook like button in your HTML files. Test it by clicking like and seeing it appears in your own Facebook account newsfeed. If you can already do that, also try Twitter tweet button.
User database setup with access restrictions (A2)
- create user accounts of at least 1 admin and 2 students (preferably one in top-7 and one outside for purposes of testing different views)
- adjust users table to ensure that database will not be corrupted by malicious users
Styling for highest attribute hides the value from user
Radar chart
Merge radar chart with the two repos
Redirect detailed page for non-existing student to 404 page
Adjust views of index page according to user login [ranklist]
- not login: show only top 7 students
- login with student [rank i ]: show top 7 + student + another student [rank i - 1]
- login with admin: entire ranklist + CRUD privilege
Analytics + marketing challenge
(EASY to setup, HARD to get many visitors due to the nature of the ranklist app): First, quickly set up Google Analytics (or other relevant service) tracker code inside your HTML files ASAP and then monitor the web traffic; Show the Google Analytics data to your Lab TA on Monday, 06 March 2017 to convince him that you have (some) visitors other than yourself... To encourage more visitors, if you know anyone in the actual CS3233 class (current or past students), ask them to visit your ranklist app, get their feedback (if any), and tell those feedback to your Lab TA.
Add routing restrictions based on login
- not login: only index and detailed page of top 7 students
- login student: only index and detailed page of top7 + himself + rank-1 of himself
- login admin: should be all routing
Forgot password - Change to another mail hosting
Chart over time should be increasing over time
- sum(week1:weeki) by week i
On accessing unavailable routes (HTTP error 404), or any other non HTTP 200 responses, give a more graceful error message than Laravel default
Disallow /register route
You shall disallow /register route as the admin/lecturer will register all his N accounts upfront at the beginning of the semester and will disallow anyone else from taking his/her class afterwards.
Adjust views of index page according to user login [messaging]
-
login with student:
Moreover, add a simple text box with a submit button that can be used to send a message to the admin/lecturer, e.g. to say "sir, please update my CodeForces achievement as I have just passed it, here is my CodeForces account for your verification.", etc. His/her account name and submission timestamp will be associated with that message. If his/her admin/lecturer has replied, the reply will be seen. -
login with admin:
read the messages from his/her student and reply those messages accordingly (only the actual sender of that message will be able to see that reply).
Internalization + localization challenge
(EASIER if your group has members who can speak various languages): If you (or your project group members) know any other language other than English, translate all the English text in your application to at least one other language, then give option for your user to switch language (and maybe also record his/her language preference in the users table database). You can do this on client-side version (use JavaScript to change the html text of your paragraphs or span elements — not the best way to do this) or server-side version (use PHP to switch between languages — the better way). We will discuss this topic more in future class but you are free to use any simple strategy that works, including this.
Search and display time chart for non-top-ten students
Database migrations and queries for messaging feature
- create another table/col called messages
- create queries to select messages based on login as student or admin
Improve the crappy UI
On Create/Update/Delete action as described in Lab4, give a dismissible "alert".
the fun one *wink*wink*
Back in Lab3, we have:
Set the row height of row i+1 according to the difference of column Sum values between row i and row i+1. That is, the bigger the gap, the bigger the visual gap has to be (you are free to calibrate the gap rules as long as it is visually consistent). However, turn off this feature when user clicks on a column header as the sort order will likely be different. This likely requires some custom JS coding work.
Now use this rule:
Set the row height of row i+1 according to the difference of the active sort column values between row i and row i+1. That is, the bigger the gap, the bigger the visual gap has to be (although you are still free to calibrate the gap rules as long as it is visually consistent, you should minimize vertical scrolling, i.e. don't use too much whitespace). of course, only apply this row height feature when the active sort column contains numbers.
Account Registration Page + Authentication + Reset Password for Extra Challenge
I'm just going to cheat my way through with Laravel Provided Authentication Framework
Rank on index page
read the title
Domain name + HTTPS challenge
(EASY WITH "LetsEncrypt" BUT A BIT COSTLY FOR GOOD DOMAIN NAME): If your capstone project group is still using IP address as of Lab5, try to get a free (but usually meaningless) domain name. Once you have a domain name for your DO droplet, setup HTTPS using LetsEncrypt. However, if your capstone project group already have a very strong idea on what to do for capstone project and already decide on the name for the capstone project, then immediately buy a meaningful+short domain name using NameCheap, GoDaddy, Exabytes (for .sg domain) before it is taken by others and use it to claim this achievement for this Lab6. Your capstone project group will have to do this by Week 13 anyway.
time stamp
Use built-in timestamps feature in Laravel Eloquent ORM to display time-related information, e.g. the ranklist is last updated ['X days ago' or 'on Monday, 13 February 2017, 9.58pm SGT']..., etc.
Progress overtime
Add "progress over time" feature. Currently the landing page/the ranklist of our ranklist app shows the latest scores of every student at this point of time. What if we want to show progress over time (e.g. NUS week 1 to week 13)? We may have to record more data or put timestamp-related features in our database. Display this progress over time as a line chart (use whatever line chart) where the y-axis should be the sum scores and the x-axis should be the time (e.g. 13 ticks: Week 1 to Week 13). Give option to turn on/off certain students in this "progress over time" chart. In my mind, I am thinking of this. Decide what changes (another migration) that you have to do to your underlying database scheme (if your group has used it earlier) or to think from scratch to support this feature if your group has not used database before.
Model achievement
Use Eloquent relationship to model the achievement system of CS3233. Currently, only when we click a student detail, then we can see his/her list of achievements (as raw text). Remodel this using Eloquent relationship so that we can give additional view in our ranklist app: Show which students that have "Kattis apprentice 1/6", for example.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.