3.1 KiB
Contributing to FreeSched
Thank you for your interest in contributing to FreeSched! This document provides guidelines and instructions for contributing to this open-source scheduling tool.
Code of Conduct
Please be respectful and considerate of others when contributing to this project. We aim to foster an inclusive and welcoming community.
How to Contribute
Reporting Bugs
If you find a bug in the application:
- Check if the bug has already been reported in the Issues section
- If not, create a new issue with a clear title and description
- Include steps to reproduce the bug
- Add information about your environment (OS, Node.js version, etc.)
- If possible, include screenshots or error logs
Suggesting Features
Have an idea for a new feature?
- Check if the feature has already been suggested in the Issues section
- If not, create a new issue with the tag "enhancement"
- Provide a clear description of the feature and how it would benefit the project
- If possible, include mockups or examples
Pull Requests
We welcome contributions via pull requests:
- Fork the repository
- Create a new branch for your feature or bugfix (
git checkout -b feature/your-feature-name
) - Make your changes
- Test your changes thoroughly
- Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin feature/your-feature-name
) - Create a new Pull Request
Pull Request Guidelines
- Keep your changes focused on a single issue or feature
- Follow the existing code style and formatting
- Include tests if applicable
- Update documentation as needed
- Make sure all tests pass before submitting
- Provide a clear description of the changes in your PR
Development Setup
Follow these steps to set up the project for development:
-
Clone the repository
git clone https://github.com/moeny/freesched.git cd freesched
-
Install dependencies
npm install
-
Start the server
npm start
Project Structure
server.js
- Express server and API endpointsdb/
- SQLite database and initializationviews/
- HTML templates for admin and public interfacespublic/
- JavaScript, CSS, and static assetstimepicker-modal/
- Custom timepicker component
Coding Standards
- Use consistent indentation (2 spaces)
- Follow JavaScript best practices
- Comment your code when necessary
- Keep functions small and focused
- Use meaningful variable and function names
Testing
Currently, the project does not have automated tests. Manual testing is required before submitting PRs:
- Test both admin and user interfaces
- Verify that time slots can be created and booked correctly
- Test edge cases (invalid inputs, concurrent bookings, etc.)
Documentation
If you make changes that affect how users interact with the application, please update the README.md accordingly.
License
By contributing to FreeSched, you agree that your contributions will be licensed under the project's ISC license.
Questions?
If you have any questions about contributing, feel free to open an issue for discussion.
Thank you for helping improve FreeSched!