Your Personal Knowledge Management System for Development Resources
A full-stack web application designed specifically for developers to save, organize, and manage their development bookmarks efficiently. Built with modern web technologies and security best practices.
- Secure user registration and authentication
- Password hashing with bcrypt
- Session management with Passport.js
- User profile management
- Create, read, update, and delete bookmarks
- Rich bookmark details (title, URL, category, tags, notes)
- User-specific bookmark organization
- Organize bookmarks into custom collections
- Collection descriptions and metadata
- Easy bookmark-to-collection assignment
- Collection-based browsing
- Custom tags for flexible organization
- Category-based filtering
- Tag cloud visualization
- Advanced search by tags and categories
- Mobile-first responsive design
- Bootstrap 5 framework
- Cross-browser compatibility
- Touch-friendly interface
- Flash messages for user feedback
- Intuitive navigation
- Loading states and error handling
- Clean, modern UI
Coming soon...
- Node.js - JavaScript runtime
- Express.js - Web framework
- MongoDB - NoSQL database
- Mongoose - MongoDB object modeling
- Passport.js - Authentication middleware
- bcrypt - Password hashing
- Joi - Input validation
- connect-flash - Flash messages
- EJS - Templating engine
- Bootstrap 5 - CSS framework
- Font Awesome - Icons
- Vanilla JavaScript - Client-side functionality
- Nodemon - Development server
- ESLint - Code linting
- Prettier - Code formatting
- Node.js (v14.0.0 or higher)
- MongoDB (v4.4 or higher)
- npm or yarn package manager
-
Clone the repository
git clone https://github.com/DevOlabode/developer-bookmark-vault.git
-
Install dependencies
npm install
-
Set up environment variables Create a
.envfile in the root directory:# Database DATABASE_URL=mongodb://localhost:27017/developerBookmarks # Session SESSION_SECRET=your-super-secret-session-key-here # Server PORT=3000 NODE_ENV=development
-
Start MongoDB Make sure MongoDB is running on your system:
# On macOS/Linux mongod # On Windows # MongoDB should start automatically as a service
-
Run the application
# Development mode npm run dev # Production mode npm start
-
Access the application Open your browser and navigate to
http://localhost:3000
developer-bookmark-vault/
βββ π controllers/ # Route controllers
β βββ bookmarks.js # Bookmark CRUD operations
β βββ collections.js # Collection management
β βββ collectionBookmarks.js # Collection-bookmark relationships
β βββ user.js # User management
βββ π models/ # Database models
β βββ bookmark.js # Bookmark schema
β βββ collection.js # Collection schema
β βββ user.js # User schema
βββ π routes/ # Express routes
β βββ bookmark.js # Bookmark routes
β βββ collections.js # Collection routes
β βββ collectionBookmarks.js # Collection-bookmark routes
β βββ user.js # User authentication routes
βββ π views/ # EJS templates
β βββ bookmark/ # Bookmark views
β βββ collections/ # Collection views
β βββ collectionBookmarks/ # Collection-bookmark views
β βββ user/ # User views
β βββ partials/ # Reusable components
β βββ layout/ # Layout templates
βββ π public/ # Static assets
β βββ css/ # Stylesheets
β βββ js/ # Client-side JavaScript
β βββ images/ # Images and icons
βββ π utils/ # Utility functions
β βββ catchAsync.js # Async error handling
β βββ expressError.js # Custom error class
βββ π middleware/ # Express middleware
β βββ validation.js # Input validation
βββ π seeds/ # Database seeding
β βββ seed.js # Sample data
βββ .env.example # Environment variables template
βββ .gitignore # Git ignore rules
βββ index.js # Main application entry
βββ package.json # Dependencies and scripts
βββ README.md # This file
POST /register- User registrationPOST /login- User loginPOST /logout- User logout
GET /bookmark- List all user bookmarksGET /bookmark/new- New bookmark formPOST /bookmark- Create new bookmarkGET /bookmark/:id- View bookmark detailsGET /bookmark/:id/edit- Edit bookmark formPUT /bookmark/:id- Update bookmarkDELETE /bookmark/:id- Delete bookmark
GET /collections- List all user collectionsGET /collections/new- New collection formPOST /collections- Create new collectionGET /collections/:id- View collection detailsGET /collections/:id/edit- Edit collection formPUT /collections/:id- Update collectionDELETE /collections/:id- Delete collection
GET /collections/:id/bookmarks- List bookmarks in collectionGET /collections/:id/bookmarks/new- Add bookmark to collection formPOST /collections/:id/bookmarks- Add bookmark to collectionDELETE /collections/:id/bookmarks/:bookmarkId- Remove bookmark from collection
Testing setup coming soon...
- User Registration: Test creating new accounts
- Authentication: Test login/logout functionality
- Bookmark CRUD: Test creating, reading, updating, and deleting bookmarks
- Collections: Test creating and managing collections
- Search: Test search and filtering capabilities
- Responsive Design: Test on mobile, tablet, and desktop
We welcome contributions! Please see our Contributing Guidelines for details.
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Make your changes and commit:
git commit -m 'Add amazing feature' - Push to the branch:
git push origin feature/amazing-feature - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Bootstrap for the CSS framework
- Font Awesome for icons
- MongoDB for the database
- Express.js for the web framework
- Passport.js for authentication
If you have any questions or need help, please:
- Check the Issues page
- Create a new issue with detailed information
- Join our community discussions
Made with β€οΈ by developers, for developers



