A full-stack web application for Tarlac State University - Office of Business Affairs and Auxiluary Sevices to streamline student ID appointment scheduling, management, and administration. Built for reliability, ease of use, and scalability.
- Features
- Tech Stack
- Screenshots
- Getting Started
- Project Structure
- API Overview
- Usage
- Troubleshooting & FAQ
- Documentation
- Contributing
- License
- Contact
- 📝 Student registration with validation
- 📅 Interactive calendar for appointment selection
- ⏱️ Real-time slot availability and feedback
- 📲 Mobile-friendly, responsive design
- 📧 Email confirmation (optional, if configured)
- 👨💼 Secure admin authentication
- 📊 Dashboard for monitoring appointments and statistics
- 🗂️ Student and schedule management (add/edit/delete)
- 🗃️ Export data to Excel/CSV
- 🔄 Adjust slot limits and manage system settings
- 🔒 Secure authentication and data handling
- 🛠️ Robust error handling and user-friendly messages
- 🧪 Automated tests for backend and frontend
Frontend:
- React.js (Vite)
- Tailwind CSS
- Axios (API requests)
- Date-fns (date utilities)
- Jest & React Testing Library (testing)
Backend:
- PHP (7.4+)
- MySQL/MariaDB
- PDO (secure DB access)
- RESTful API design
Development Tools:
- Node.js (16+)
- ESLint, Prettier
- XAMPP/WAMP/MAMP for local PHP/MySQL
| Student View | Admin View |
|---|---|
![]() |
![]() |
- Install PHP & MySQL (e.g., XAMPP, WAMP, MAMP)
- Clone the repository:
git clone https://github.com/yourusername/tsu-id-schedule.git cd tsu-id-schedule/backend - Configure Database:
- Import
backend/database/schema.sqlinto your MySQL server. - Edit
backend/config.phpwith your DB credentials.
- Import
- Environment Variables:
- Copy
.env.exampleto.envand set values as needed (if used).
- Copy
- Start PHP Server:
- Use XAMPP/WAMP/MAMP or run:
php -S localhost:8000
- Use XAMPP/WAMP/MAMP or run:
- Install Node.js (16+)
- Install dependencies:
cd ../frontend npm install - Configure Environment:
- Run:
npm run setup
- Or create
.envwith:VITE_API_BASE_URL=http://localhost/Projects/TSU-ID-Scheduling-System/backend
- Run:
- Start Development Server:
npm run dev
- Visit http://localhost:3000
TSU-ID-Scheduling-System/
├── backend/ # PHP backend (API, DB, logic)
│ ├── config.php # DB config
│ ├── database/ # SQL schema & migrations
│ ├── tests/ # Backend test scripts
│ └── ... # API endpoints, utils
├── frontend/ # React frontend
│ ├── src/ # Source code
│ │ ├── Components/ # UI components
│ │ ├── config/ # API config
│ │ └── ...
│ ├── public/ # Static assets
│ └── ...
├── README.md # Project documentation
└── ...
- All backend endpoints are in
/backend/(seebackend/PHP files) - Example endpoints:
POST /backend/register.php— Register studentPOST /backend/login.php— Login (student/admin)GET /backend/get_slot_count.php— Get slot availabilityPOST /backend/booking.php— Book appointmentPOST /backend/adjustLimitofSlots.php— Admin slot adjustment
- See
frontend/src/config/api.jsfor how the frontend interacts with the API. - For more, see frontend/docs/DEPLOYMENT_GUIDE.md and code comments.
- Register or log in
- Select an available slot
- Confirm your appointment
- (Optional) Download/print/screenshot your schedule
- Log in to the admin portal
- View and manage student appointments
- Adjust slot limits, export data, and monitor system
- Cannot connect to backend?
- Check your
.envand API base URL - Ensure PHP server is running
- Verify CORS settings in backend
- Check your
- CORS errors?
- Make sure frontend and backend are on the same domain/port in production
- Database errors?
- Confirm DB credentials and schema import
- Environment variables not loading?
- Restart dev server after changes
- More help?
- Fork the repository
- Create a feature branch (
git checkout -b feature/YourFeature) - Commit your changes (
git commit -m 'Add feature') - Push to your branch (
git push origin feature/YourFeature) - Open a Pull Request
MIT License — see LICENSE for details.
Maintainer: [MUMEi-28] Project Link: https://github.com/MUMEi-28/TSU-ID-Scheduling-System


