This is the longest I have gone without posting a blog entry. If you read on a daily basis, I apologize. I finally finished the Edit Admins screen and you can see a screen shot below.
The orange help bar is collapsible and is collapsed by default. To add a new admin for your club, you simply click the “Add New” link and a new row will appear where you can fill in their log in name, e-mail address, permission, and whether or not they will receive e-mails when people ask to join the club. The top row will always be you. You may not delete yourself, but any other permission zero admin may delete you, so be careful who you make your admins. By default we select permission 2 for new admins, to minimize making full permission admins by accident. Clicking the little red circle will ask you if you are sure you would like to delete this admin, clicking “Yes” will delete that admin fully. The gray cylinder is the save button. Right now I have coded it so that you may only save 1 row at a time, and that may change in the future. This means that if you change data for more than 1 admin and then click save, you will lose your changes to those other admins that you did not click save for.
On save of a newly added admin, an e-mail gets sent to that person, with their login name and temporary password. When they log in for the first time they will be prompted to change their password. This prompting for a new password still needs to be built and that is what I am going to work on next. After that I think I should move onto the Club Join Requests Screen. I have already built this screen but I built it a long time ago and it needs to use some of the new standards I have put in place along the way. Also, I may update the way it looks….maybe.
I was working on the Edit Admins screen and implementing the permission levels on log in. If you don’t know, permission levels are a way to say that an admin can access everything or just parts or 1 part of the site. When an admin logs in we need to know their permission level so we can build the menus correctly and redirect them to the screen they most likely want to visit. When I was testing this functionality I ran into some issues. I had 2 admins with the same log in name, which is something I knew I wasn’t going to allow but my test data didn’t conform to my own rules. Anyways, I tried to log in as this admin and it kept saying my password was wrong, and I attempted it 3 times and got locked out.
I wanted to reset my lock out so I could continue working, but I needed to write the code and decided I should look into my lock out deeper and make sure there is an amount of time set that users could be locked out for. Initially it was set to whatever the default is(who knows? 1/2 hour?) I coded it to last 10 minutes from the time you were locked out which I think is reasonable.
Then I got caught up in a web of logging in to the correct page and building the menus correctly and what page you should land on when locked out, etc. It took a lot of time to get this stuff straight, but I’m confident that I’m doing the right things now and I will not have to worry about it, which is good.
Now that I have finished that, I can get back to the Edit Admins screen and get it finished up. In my next blog post I will provide a screen shot.
I am currently working on the Edit Admins screen and I have provided an image below that shows what this dialog will look like(roughly). I still need to add an “Add New” link and the info button next to permissions may go away. I do still need to find a proper place to put the explanations for each permission level, but I’m not sure I want the info button to be the answer.
I am going to validate the login name and e-mail address as you type it. Login names will need to be unique across the system, so I’d like to provide instant feedback. E-mails obviously need to be ___@___.___ but that validation is really for convenience and to stop input errors from happening. Technically you could still put firstname.lastname@example.org as the email address, but then that admin wouldn’t be able to receive e-mails.
As I’m typing this I have thought about the options here and realized that the password reset option doesn’t make much sense. Admins will ask to reset their own passwords, not have another admin do it for them. Also, I think there should be a check box that lets you opt-out of receiving the request to join e-mails. Maybe you have one or two guys that ONLY accept or deny requests to join and not every high-level admin wants to receive those e-mails.
So if you want to visualize this page, the columns should be Login | E-mail | Permission | Join Mail | Delete and Save.
I was debating if I should include functionality for setting admins inactive and active, but I doubt that would get used often. If I get requests for that feature, I’ll add it in.
So yeah, I have a lot of work to do. Thanks for reading!
This weekend I finished up the Series Details screen and you can see an image of it at the bottom of this post. I implemented it on the main series screen, so that whenever you click the name of a series you will see the details screen in a dialog. Just like the Race Details screen, you can click a button to pop it out of the dialog and make it a full page.
Also on the Series Details screen, is a list of races in the series. Each race listed is a link to the Race Details screen for that race. As part of this feature I added a back button on the Race Details screen, so users can easily go back and forth through all the races in a series.
The next thing I need to work on is on the Admin version of the Club Profile screen. I added a link to that screen when I created it, that allows you to edit the administrators of your club. You will be able to add admins by giving them a user name and setting their permission level. A random strong password will be generated and sent to the e-mail address that is provided. This new user will log in with that password and have a chance to change the password to whatever they want.
I eluded to permission levels and to expand on that there will be 3 levels. Level 0(zero) is the highest level and it allows an admin to edit other admins access and permissions, edit the club profile screen and everything the other levels have access to. Level 1 allows access to accept or deny requests to join the club and add series, races and input results. Level 2 only allows access to accept or deny requests to join.
So not only do I need to create the screen where you add/edit the admins, I need to hook up the permissions into all of the admin screens so that admins with permission level 1 and 2 can’t access the add/edit admins screen because they should not have access to that screen.
This will take a while to complete, but you can stay updated on my progress by viewing this blog. I’ll have updates with images along the way.
Thanks for reading! see below for the series details screen shot.
Last night I finished implementing the Race Details screen everywhere it needed to be. I also came across some user interface issues on some pages that were showing a dialog, so I fixed them quickly.
Now that the Race Details screen is coded and implemented, I can move on to the Series Details screen. The Series Details screen will be similar to the Race Details screen except that it will contain a prominently displayed leader board specific to this series. Below the leader board will be the series description that is collapsible. Below that will be a list of races in the series. Each race listed is a link to the Race Details screen. For that to work well I will need a “Back” button on the Race Details screen.
After I finish up this series details screen, I am going to move on to the sign-up screen and then the custom 404 page after that. The new year is approaching quickly and I want to make sure that I have some vital pieces working so there isn’t a time crunch. I was doing my budget and unless I get some money for Christmas, it looks like I won’t be able to purchase the server and domain names until around January 8th. It would be nice to have what I want for release #1 done before January so I can start some sort of count down to launch to get everyone excited. Absolute worse case scenario, I launch on January 19th.
I’ve been pretty busy lately so it took me a long time to get this blog post out. I fixed the issues I was having with the deleting and moved on to implementing the Race Details screen as a dialog all over the site.
I started with the main races screen and you can see what it looks like in the image below. You can see in the upper right corner of the race details screen that I have included a little image of 4 arrows pointing outwards. That image is a button that can be clicked to make the race details full page. The dialog itself is just smaller than most screens used today, but I figured on some mobile devices it could vary. So clicking that will pop it out into a full page view which should render friendlier than in the dialog. Also, some clubs might want to use wider images/videos in their race descriptions.
I still have two pages to implement this on so I better get to it. Thanks for reading!
Here’s the story… I was working on the site and I noticed that I need some delete functions for series and races. It is possible that you could accidentally create a series or a race and want to delete it, so I proceeded to provide this feature because I knew it would be useful and quick to implement. After I coded it, I wanted to test it and I did and it seemed to work great. Little did I know I was deleting results for EVERY CLUB!!!
This is the part where you shouldn’t panic. I take backups regularly so I had a recent one I could pull the results from and add back to my current database that has no results now. I knew I wouldn’t have every piece of data from the results, but most would be there and I could just cycle through my races and see which ones were missing data.
I take pictures of all the Forza finish screens, so I have a second form of backup to pull from. This would have been a lot bigger SNAFU if it wasn’t just my club’s data, but even then I would have backups taken more often, so maybe I would lose data for 24 hours or so. 24 hours of data shouldn’t be a lot of data per club. Say I lose all the results for all clubs and there are 1,000 clubs but I restore all the data except the race those 1,000 clubs ran last night. 1,000 clubs will have to enter 1 nights worth of data. It’s a free site, I’m one guy, I think it’s a pretty fair deal.
Honestly I don’t expect this to happen to the production environment anyways. These things will be caught by me in development. I hope no one is panicking, because I’m not.