StudentNote is a modern, web-based application designed to help students organize their academic life. It allows users to create modules (subjects), manage notes, and track their study progress in a beautiful, responsive interface.
- 🔐 Secure Authentication: User registration and login system.
- 📊 Interactive Dashboard: Get a quick overview of your modules, recent notes, and stats.
- 📁 Module Management: Organize your notes by subjects or modules. Create, edit, and delete modules with ease.
- 📝 Smart Note Taking: Create rich text notes linked to specific modules.
- 🎨 Premium Design: A modern, responsive user interface with:
- Smooth gradients and animations.
- Dark/Light mode aesthetic elements.
- Mobile-responsive layout.
- 👤 User Profile: Manage your personal information.
- Frontend: HTML5, CSS3 (Custom Premium Design), JavaScript (Vanilla)
- Backend: PHP (Native)
- Database: MySQL
- Server: Apache (via XAMPP/WAMP)
students_notes/
├── app/
│ ├── admin/ # Admin functionality
│ ├── auth/ # Authentication (Login/Register)
│ ├── db/ # Database connection & config
│ ├── modules/ # Module CRUD operations
│ ├── notes/ # Note CRUD operations
│ ├── profile/ # User profile management
│ └── views/ # General views (Dashboard, Landing)
├── css/
│ ├── pages/ # Page-specific styles (Dashboard, Modules)
│ └── base.css # Global styles and variables
├── images/ # Assets and logos
├── js/ # Client-side scripts
├── index.php # Entry point (Redirects to landing)
└── README.md # Project documentation
- XAMPP or WAMP installed (PHP >= 7.4, MySQL).
- A web browser.
-
Clone the repository (or extract files) to your web server's root directory (e.g.,
C:\xampp\htdocs\students_notes). -
Database Setup:
- Open phpMyAdmin (
http://localhost/phpmyadmin). - Create a new database named
student_notes. - Import the database schema (Run the following SQL):
CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(50) NOT NULL UNIQUE, password VARCHAR(255) NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); CREATE TABLE `admins` ( `id` int(11) NOT NULL, `username` varchar(50) NOT NULL, `password` varchar(255) NOT NULL, `email` varchar(100) NOT NULL, `role` varchar(50) DEFAULT 'admin', `admin` varchar(30) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; CREATE TABLE modules ( id INT AUTO_INCREMENT PRIMARY KEY, user_id INT NOT NULL, name VARCHAR(100) NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE ); CREATE TABLE notes ( id INT AUTO_INCREMENT PRIMARY KEY, user_id INT NOT NULL, module_id INT NOT NULL, title VARCHAR(255) NOT NULL, content TEXT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE, FOREIGN KEY (module_id) REFERENCES modules(id) ON DELETE CASCADE );
- Open phpMyAdmin (
-
Configuration:
- Open
app/db/config.php. - Ensure the database credentials match your local setup:
define('DB_HOST', 'localhost'); define('DB_USER', 'root'); define('DB_PASS', ''); define('DB_NAME', 'student_notes');
- Open
-
Run the Application:
- Open your browser and navigate to:
http://localhost/students_notes
- Open your browser and navigate to:
The project uses a custom CSS design system located in css/base.css. Key design tokens include:
- Primary Gradient:
linear-gradient(135deg, #667eea 0%, #764ba2 100%) - Font Family: System UI stack (San Francisco, Segoe UI, Roboto)
- Components: Reusable classes for cards, buttons, and form elements.
- Fork the project.
- Create your feature branch (
git checkout -b feature/AmazingFeature). - Commit your changes (
git commit -m 'Add some AmazingFeature'). - Push to the branch (
git push origin feature/AmazingFeature). - Open a Pull Request.