Web Kütüphane
Book lending and membership management, with authentication written by hand rather than pulled from a package.
A library’s needs look simple: books, members, loan records. The difficulty is preventing the same book from being lent twice and ensuring each user sees only their own records.
- REST endpoints on Node.js and Express, with EJS for server-side templates.
- Data in MongoDB, schemas and relations defined through Mongoose.
- I built authentication myself with bcrypt and express-session rather than an off-the-shelf identity package: password hashing, session storage and cookie settings all under my control.
A solo project; everything from data model to interface is mine.
Membership, catalogue, lending and return flows plus session-based authorisation all work.
Writing authentication by hand surfaces the decisions a ready-made solution quietly makes for you: what the password hashing cost should be, where sessions live, what HttpOnly and SameSite actually do. In production I would use a library — but now I would use it knowing what it does.
Node.js · Express · EJS · MongoDB · Mongoose · bcrypt