diff --git a/README.md b/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..c684aaedb852428d00fca10c5269f89455ecc913
--- /dev/null
+++ b/README.md
@@ -0,0 +1,72 @@
+SzobaTinder
+===========
+
+This is a homework project for the Server-side Javascript course at BME. Written using Node.JS and Express, see the dependencies in `package.json`.
+
+Running: `node index.js`
+
+What's this?
+------------
+
+It's always a big fuss to find roommates in BME dorms. This app could solve this problem by bringing every roommate-seeking individual or group onto one single platform, and let them search for likeable potential roommates - similar to the popular partner-seeking app, Tinder.
+
+Plans & docs
+------------
+
+**Attention! This project is heavily under development.**
+
+### Planned endpoints
+
+These endpoints are subjects to change. There might be a really bad design decision lurking in them, so wear a helmet if you want to read on!
+
+- `/` - GET - shows a login screen when not logged in. If the user is logged in, shows a screen where users can see another user profile - and decide whether they like them or not.
+
+<br/>
+
+- `/login` - POST - takes a username and a password as parameters. If they are correct, creates a session. If they are not, redirects to `/`.
+- `/register` - GET - a registration form.
+- `/register` - POST - takes a username, a password and a password-again from the registration form. If the username is not taken, and the passwords match, creates the user and creates a session. Otherwise it redirets to `/register`.
+- `/logout` - GET - destroys the session and redirects to `/`.
+- Note: we're not dealing with forgotten passwords. I'm not going to set up an SMTP server for that, and "security questions" are even more terrible.
+
+<br/>
+
+- `/browse` - GET - shows the profile of another user, with an option to like or dislike.
+- `/browse/like` - POST - expresses a like. Supplies the username of the liked profile in a parameter. If there was a match, redirects to `/browse/match`, else to `/browse`.
+- `/browse/match` - GET - notifies a user about a new match.
+- `/browse/dislike` - POST - expresses a dislike. Supplies the username of the disliked profile in a parameter. Redirects to `/browse`.
+
+<br/>
+
+- `/matches` - GET - shows a list of the matches for the user.
+- `/user/:username` - GET - shows the profile of the user supplied as URL parameter.
+
+<br/>
+
+- `/profile` - GET - shows a form to edit user profile.
+- `/profile` - POST - saves a profile.
+
+### Necessary middlewares
+
+- **static** middleware - because I want CSS, that's why.
+
+<br/>
+
+- **auth** middleware - should be placed on all non-public endpoints. If the user has a valid session, sets the username on `res.locals.username`. Else, redirects to `/`.
+- **login** middleware - does the login based on username and password. If the credentials are corrects, sets a session. If not, redirects to `/login`.
+- **registration** middleware - same but for registration.
+- **logout** middleware - destroys the session and redirects to `/`.
+
+<br/>
+
+- **profile load** middleware - loads a profile and places its data on `res.locals.profile`. It takes the username to load the profile for from `res.locals.userToLoad`.
+- **browse** middleware - selects a username that the current user has no relation with yet, and places it on `res.locals.userToLoad`.
+- **select** middleware - selects a username from a request parameter and places it on `res.locals.userToLoad`.
+- **like** middleware - creates a positive relation with the current user and the one on `res.locals.profile`. If it's a match, redirects to `/browse/match`, else to `/browse`.
+- **dislike** middleware - creates a negative relation with the current user and the one on `res.locals.profile`. Redirects to the _referer_ page.
+- **matches list** middleware - loads usernames for the matches of the current user, and places them on `res.locals.matches`.
+- **profile edit** middleware - reads profile data from the requests and saves it for the current user.
+
+<br/>
+
+- **render** middleware - renders an HTML page.
\ No newline at end of file