Skip to content

Commit baa77a0

Browse files
committed
Changelog and readme
1 parent ace0ff5 commit baa77a0

2 files changed

Lines changed: 95 additions & 34 deletions

File tree

CHANGELOG.md

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,4 +19,35 @@
1919
- Wrapper class Notification for sending emails, other notifications to users
2020
- Remove username requirement for password reset. It is more likely that an attacker would know the user's username, than the user themselves. For the next version, we can try to implement some real multi-factor authentication.
2121
- When a user creates another user, they don't need to set a password. Instead, an email is sent out to the new user, with a token allowing them to set their own password.
22-
- Admins can manually generate a password reset request for another user, or directly change the user's password.
22+
- Admins can manually generate a password reset request for another user, or directly change the user's password.
23+
24+
## v0.3.0
25+
26+
### Autoloading with Composer
27+
28+
http://www.userfrosting.com/navigating/#composer
29+
30+
### Front Controllers and the Slim Microframework
31+
32+
http://www.userfrosting.com/navigating/#slim
33+
34+
### MVC Architecture
35+
36+
http://www.userfrosting.com/navigating/#structure
37+
38+
### Templating with Twig
39+
40+
http://www.userfrosting.com/navigating/#twig
41+
42+
### Theming
43+
44+
http://www.userfrosting.com/components/#theming
45+
46+
### Plugins
47+
48+
http://www.userfrosting.com/components/#plugins
49+
50+
## Libraries
51+
52+
- URL Routing and micro-framework: [Slim](http://www.slimframework.com/)
53+
- Templating: [Twig](http://twig.sensiolabs.org/)

README.md

Lines changed: 63 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# UserFrosting v0.3.1 (development)
1+
# UserFrosting v0.3.1
22

33
http://www.userfrosting.com
44

@@ -14,7 +14,66 @@ Copyright (c) 2015, free to use in personal and commercial software as per the [
1414

1515
UserFrosting is a secure, modern user management system written in PHP and built on top of the [Slim Microframework](http://www.slimframework.com/) and the [Twig](http://twig.sensiolabs.org/) templating engine.
1616

17-
## Migrating from UF's classic data model to Eloquent:
17+
## Installation
18+
19+
Please see our [installation guide](http://www.userfrosting.com/installation/).
20+
21+
## Troubleshooting
22+
23+
If you are having trouble installing UserFrosting, please read our [troubleshooting guide](http://www.userfrosting.com/troubleshooting) first!
24+
25+
If you are generally confused about the structure and layout of the code, or it doesn't look like the kind of PHP code that you're used to, please read [Navigating UserFrosting](http://www.userfrosting.com/navigating).
26+
27+
If you want a good tour of the code base, we recommend going through our [tutorials](http://www.userfrosting.com/tutorials).
28+
29+
## Features
30+
31+
#### Login page
32+
![Login page](/screenshots/login.png "Login page")
33+
#### Dashboard (thanks to [Start Bootstrap](http://startbootstrap.com))
34+
![Admin dashboard](/screenshots/dashboard.png "Admin dashboard")
35+
#### User list page
36+
![User list](/screenshots/users.png "User list page")
37+
#### Create/update user dialog with validation
38+
![Create/update user user](/screenshots/update_user.png "Create/update user dialog")
39+
#### Group management
40+
![Group management](/screenshots/groups.png "Group management page")
41+
#### Site settings
42+
![Site settings](/screenshots/site_settings.png "Site settings page")
43+
44+
## Mission Objectives
45+
46+
UserFrosting seeks to balance modern programming principles, like DRY and MVC, with a shallow learning curve for new developers. Our goals are to:
47+
48+
- Create a fully-functioning user management script that can be set up in just a few minutes
49+
- Make it easy for users to quickly adapt the code for their needs
50+
- Introduce novice developers to best practices such as separation of concerns and DRY programming
51+
- Introduce novice developers to modern constructs such as front-end controllers, RESTful URLs, namespacing, and object-oriented modeling
52+
- Build on existing, widely used server- and client-side components
53+
- Clean, consistent, and well-documented code
54+
55+
## What's new in 0.3.1
56+
57+
- Improved initialization routine as middleware
58+
- Implemented "remember me" for persistent sessions - see https://github.com/gbirke/rememberme
59+
- Converted page templates to inheritance architecture, using Twig `extends`
60+
- Start using the `.twig` extension for template files
61+
- All content is now part of a theme, and site can be configured so that one theme is the default theme for unauthenticated users
62+
- User session stored via `user_id`, rather than the entire User object
63+
- UserFrosting now uses Laravel's [Eloquent](http://laravel.com/docs/5.1/eloquent#introduction) as the data layer
64+
- Cleaned up some of the per-page Javascript, refactoring repetitive code
65+
- Implement server-side pagination
66+
- Upgrade to Tablesorter v2.23.4
67+
- Switch from DateJS to momentjs
68+
- Switch to jQueryValidation from FormValidation
69+
- Implement basic interface for modifying group authorization rules
70+
- User events - timestamps for things like sign-in, sign-up, password reset, etc are now stored in a `user_event` table
71+
- Wrapper class Notification for sending emails, other notifications to users
72+
- Remove username requirement for password reset. It is more likely that an attacker would know the user's username, than the user themselves. For the next version, we can try to implement some real multi-factor authentication.
73+
- When a user creates another user, they don't need to set a password. Instead, an email is sent out to the new user, with a token allowing them to set their own password.
74+
- Admins can manually generate a password reset request for another user, or directly change the user's password.
75+
76+
### Migrating from UF's classic data model to Eloquent:
1877

1978
```
2079
// Instead of...
@@ -47,40 +106,11 @@ $users = User::all(); // If you want an Eloquent Collection o
47106
$users = User::all()->getDictionary(); // If you want an array of User objects (indexed by id)
48107
```
49108

50-
## What's new in 0.3.0
51-
52-
### Autoloading with Composer
53-
54-
http://www.userfrosting.com/navigating/#composer
55-
56-
### Front Controllers and the Slim Microframework
57-
58-
http://www.userfrosting.com/navigating/#slim
59-
60-
### MVC Architecture
61-
62-
http://www.userfrosting.com/navigating/#structure
63-
64-
### Templating with Twig
65-
66-
http://www.userfrosting.com/navigating/#twig
67-
68-
### Theming
69-
70-
http://www.userfrosting.com/components/#theming
71-
72-
### Plugins
73-
74-
http://www.userfrosting.com/components/#plugins
75-
76-
## Libraries
109+
[Complete change log](CHANGELOG.md)
77110

78-
- URL Routing and micro-framework: [Slim](http://www.slimframework.com/)
79-
- Templating: [Twig](http://twig.sensiolabs.org/)
80-
- Data Model: [Eloquent](http://laravel.com/docs/5.1/eloquent#introduction)
81111

82112
## Why UserFrosting?
83113

84114
This project grew out of a need for a simple user management system for my tutoring business, [Bloomington Tutors](https://bloomingtontutors.com). I wanted something that I could develop rapidly and easily customize for the needs of my business. Since my [prior web development experience](http://alexanderweissman.com/projects/) was in pure PHP, I decided to go with the PHP-based UserCake system.
85115

86-
Over time I modified and expanded the codebase, turning it into the UserFrosting project. This latest version (0.3.0) represents a major break from the original architecture of UserCake. We now use a fully object-oriented data model and a front controller for URL routing.
116+
Over time I modified and expanded the codebase, turning it into the UserFrosting project. Starting with version 0.3.0, UserFrosting represents a major break from the original architecture of UserCake. We now use a fully object-oriented data model and a front controller for URL routing.

0 commit comments

Comments
 (0)