A secure and organized way to manage your private notes, receipts, and documents. Built with PHP, SQLite, and a modern frontend.
- Digital Vault: Securely store and organize your important notes and receipts.
- Privacy First: Designed to keep your sensitive data protected.
- Quick Search: Instantly retrieve any document or note.
- Secure Authentication: Robust login and registration system with session management.
- Custom MVC Architecture: Built from scratch with a custom Router and Autoloader (PSR-4 style).
- Encryption: Two-layer encryption (AES-256-CBC + HMAC SHA3-512) for sensitive note content.
-
Environment Setup Copy the example environment file:
cp .env.example .env
-
Generate Encryption Keys You MUST generate unique keys to secure your application. Run the following command in your terminal:
# Generate First Key (32 bytes) php -r "echo base64_encode(openssl_random_pseudo_bytes(32));" # Generate Second Key (64 bytes) php -r "echo base64_encode(openssl_random_pseudo_bytes(64));"
Paste the outputs into your
.envfile forENCRYPT_FIRST_KEYandENCRYPT_SECOND_KEY.
- Backend: Native PHP 8.3+ (Class-based Controllers, Custom Routing)
- Dependency Manager: Composer
- Database: SQLite
- Frontend: TailwindCSS + DaisyUI 5
- Interactivity: Alpine.js
- Date Handling: Carbon
- Code Style: Laravel Pint (PSR-12)
- Icons: Phosphor Icons
lockbox/
├── App/ # Application Logic
│ ├── Controllers/ # Class-based Controllers
│ └── Models/ # Data Models
├── Core/ # Framework Core (Router, DB, Validator)
├── config/ # Configuration files (Database, Routes)
├── public/ # Entry point (index.php)
├── vendor/ # Composer Dependencies
└── views/ # UI Templates-
Clone the repository
git clone https://github.com/rocketseat-education/php-lockbox.git cd lockbox -
Install Dependencies
composer install
-
Start the server You can use the built-in PHP server for development:
php -S localhost:8888 -t public
This project uses Laravel Pint to ensure code quality and consistency (PSR-12).
# Fix code style automatically
./vendor/bin/pint- Access the application
Open
http://localhost:8888in your browser.
Contributions are welcome! Please check the CONTRIBUTING.md file for guidelines on how to contribute to this project.
- Fork the project
- Create your feature branch (
git checkout -b feat/AmazingFeature) - Commit your changes (
git commit -m 'feat(scope): add some AmazingFeature') - Push to the branch (
git push origin feat/AmazingFeature) - Open a Pull Request
Distributed under the MIT License. See LICENSE for more information.