A full-stack library information system built as an Information Systems project. The application combines a React + TypeScript frontend with an Express backend, MySQL database access through Sequelize, and role-based member/admin workflows.
LibraryApp explores the core processes of a library system: authentication, book management, member management, borrowing transactions, fines, dashboards, and administrative views.
A deployed frontend is configured in the repository homepage.
- React
- TypeScript
- Vite
- Tailwind CSS
- Axios
- Motion
- Node.js
- Express
- Sequelize
- MySQL
- JWT authentication
- bcryptjs
- Login/session handling
- Book catalogue
- Borrowing workflow
- Return requests
- Member dashboard
- Profile/settings flow
- Admin dashboard
- Book management
- Member management
- Transaction management
- Reports
- Stock / supply-related views
- HR-related administrative routes
The backend exposes route groups for:
/api/auth
/api/buku
/api/anggota
/api/kategori
/api/peminjaman
/api/denda
/api/dashboard
/api/hr
Database configuration is environment-based rather than hardcoded into application source.
src/
components/
data/
services/
utils/
App.tsx
backend/
config/
controllers/
middleware/
models/
routes/
seeders/
server.js
The repository provides backend/.env.example for local configuration.
Example:
PORT=3001
DB_HOST=localhost
DB_PORT=3306
DB_NAME=atma_library_db
DB_USER=root
DB_PASS=
JWT_SECRET=replace_with_your_own_secret
JWT_EXPIRES_IN=7dDo not commit real credentials or production secrets.
npm install
npm run devcd backend
npm install
node server.jsThe frontend development environment expects the backend API to be available separately.
- Translating information-system requirements into application modules
- Role-based user flows
- REST-style frontend/backend integration
- Relational database integration with Sequelize
- Authentication with JWT and hashed passwords
- Separation of frontend, backend, routes, models, and services
Some parts of the frontend still include mock data for areas where the corresponding database module is not yet available. The repository should be treated as a portfolio/academic implementation rather than a production library platform.
Academic / portfolio full-stack project.