This week has been delightfully short. I took a week off for a much needed vacation and got back on Thursday. Since Thursday I’ve been working on finishing up the layout prototype. I had an issue getting prepared statements in JSP to work, but Chad helped me come up with a workaround. It’s now more or less finished and ready to be reviewed by Fardad. Bo “The New Guy” Li has finished writing the SQL script for our database so once the prototype gets approved/tweaked, I can start working on a production prototype. I’ve also been writing up a tutorial on how to get the prototype working on other computers. Right now it’s somewhat janky, involving moving files around and importing archives. Netbeans has support for GIT versioning, but it requires its own repo. I’ll speak to Fardad and see what he thinks.
I spent the past week working on the prototype. The good news is that I’m almost done. The bad news is that I’ve been alone all week so I couldn’t get any input from Chad or Justin to see if I’m on the right track with the flow of events. I’ve done my best to replicate some semblance of state persistence by passing values from page to page using the request attribute. There are different user roles (student, professor, admin) and different links are displayed for each role. Each user role also sees different events on the calendar. The events are hard coded but the professor can’t see the student’s meetings and the admin can see all events. Students can see the details for each schedule lecture but cannot edit the lectures’ settings. Managing events, user settings, and class settings are done. Next week I’ll finish Managing professors and users and I should be done the prototype.
The prototype is finally in full swing. I’ve got a fancy login page and a couple of pages that will display only for certain user roles. For instance, a student can’t access the “Class Settings” page. Right now the authentication is extremely basic – a simple call to the database will check if the logged in user is of a certain role. It’s not how the final system will work but it’ll do for a prototype. Now that I’ve actually started coding I’ve started thinking about how to populate the calendar with events from the database. Since we want to make it so that when the user clicks the navigation buttons on the calendar (to change dates) the calendar updates itself with events for that date range, I’ll have to look through FullCalendar’s documentation to see what API calls I can use. Ideally I either need a method that returns the currently displayed date range or need to figure out a way to display only the days of the current month and not any from the past/next month.
I finally started working on a prototype website this week. With the sitemap more or less finalized, Fardad gave me the go-ahead to make a prototype. Since I’ve never coded a website using JSP, a lot of the next few weeks will be trial and error while I figure things out. I’ve been using this tutorial to get started. I decided on using NetBeans as my IDE because it has built-in server and database management tools. I didn’t come in Thursday or Friday because I have exams next week. I’ll probably take next week off as well to finish up assignments and projects.
We had another integration meeting this Monday to discuss the changes to our system. The two biggest changes are the removal of the coordinator and chair user roles and the addition of whitelists as a method for allowing users to join a meeting or lecture. Before the changes, we had created several user roles in an attempt to distribute the work of creating and managing user accounts. Chairs would create Coordinator accounts, Coordinators would create Professor accounts, and so on. Now we have a much more simplified hierarchy with the Admin accounts having the ability to create every other type of user. The other major change was moving from a password-oriented meeting/lecture access system to a whitelist one. Every meeting/lecture will have a whitelist of usernames that are able to join said meeting/lecture. The calendar view upon logging in will now display all meetings/lectures that the user has been whitelisted for. These changes required the database and sitemap to be changed accordingly. I’ve been working on those and should have them done by Monday.
I’ve been reviewing more JSP this week and continuing discussions on the integration project. We have a hierarchical system in place with multiple levels of user roles (Professor, Coordinate, Chair, etc) so as to split the workload of creating and managing different accounts. Access to meetings and lectures is given to users through a password. We had been discussing alternatively implementing a whitelist for each meeting/lecture that held the usernames of those able to join. Today Chad mentioned that Fardad had presented our current system to Gino and that many changes were requested. I’ll be getting more details on Monday during our meeting.
I finished the sitemap earlier this week and now I’m waiting to see if the design is acceptable or not. Fardad and Chad left for a hackfest in Kansas so I’ll probably get a response some time next week. Meanwhile, I’ve started learning JavaServer Pages (JSP), the language of choice for the integration system. I’m looking forward to getting started on some actual coding.
This was another busy week for me (at school) so work has been slow. I’m nearly done with the sitemap so it should be ready by Monday. The sitemap now has brief descriptions of what each page does and what major elements it will contain (input fields, buttons, drop-downs, etc). We’ll be able to very loosely trace out the user’s navigation of the system with these new updates.
Hope everyone has an awesome St. Patrick’s day weekend!
Unfortunately I’ve been completely swamped with assignments from my classes, so I wasn’t able to make it in this week. I briefly spoke to Chad who mentioned that Fardad wanted me to redo the sitemap in Visio. That’ll be on my to-do list next week.
P.S. Sorry for my absence, Fardad. I’ll buy donuts for us one of these days.
P.P.S. If anyone’s worked with CUDA on Ubuntu PLEASE drop me a line!
This week was more meetings than coding. I learned firsthand what it means to design a relatively complex system from scratch. Every time we discussed features or implementation strategies, something new would arise that hadn’t been considered before. The database has already gone through several iterations but is starting to come together logically. The list of considerations, however, is constantly growing. For instance, we’ve now agreed to have a variety of user types – Student, Professor, Coordinator, Chair – in an attempt to split up the work required to initially set up the database as well as for ongoing maintenance. But this then makes the entire success of the system dependent on the consistent and accurate input of every user (all but Students, actually). Is it reasonable to expect that course coordinators will update the list of professors and the classes they respectively teach at the beginning of every semester? There’s also the issue of how much control any one user type has. A disgruntled employee with elevated system privileges has the ability to completely ruin usage for everyone below him or her. Will this be a valid concern for us? Some of these questions simply cannot be answered by our team alone; Fardad’s already had to call higher-ups to get answers to very specific questions regarding Seneca’s internal structure. We’ve accomplished a lot this week, but we undoubtedly have a lot more ahead of us. I finished the tentative sitemap in DIA as Visio was only set up today. Chad and I concluded that a calendar-based view for displaying meetings and lectures would be ideal for this system. I’ve done a bit of research and found a flexible jQuery calendar plugin we could use. Hopefully we can do some cool things with it!