Thank you for your interest in contributing to ANDRO! This document provides guidelines and instructions for contributing to this project.
- Project Structure
- Branch Structure
- Development Setup
- Contribution Workflow
- Code Style Guidelines
- Pull Request Process
- Testing
- Documentation
- Contact
ANDRO consists of the following main components:
- Web Panel: The administrative interface built with Express.js and EJS
- Android Client: The code that runs on target Android devices
- Server: The backend that manages connections and data
Key directories:
/assets: Contains all web UI components (views, stylesheets, scripts)/includes: Server-side logic and utilities/app: Android client application files and build tools/clientData: Client database files (JSON)
The project uses the following branch structure:
main: The stable production branch. All final, tested changes go here.WebPanel: Development branch for the web interface. This is the primary branch for UI contributions.website: Branch specifically for the project's marketing website. Work on landing pages goes here.dev: General development branch for server-side and backend features.
Important: Changes merged to WebPanel are automatically merged to main after review and testing. Do not create pull requests directly to main.
-
Prerequisites:
- Node.js (v14 or newer)
- npm (v6 or newer)
- Java JDK (for APK building)
-
Installation:
# Clone the repository git clone https://github.com/AryanVBW/ANDRO.git cd ANDRO # Install dependencies npm install # For development with auto-reload npm install --save-dev nodemon debug
-
Run the development server:
DEBUG=andro:* npm run dev -
Environment setup: Make sure you have the correct settings in
includes/const.jsfor your environment.
-
Always branch from
WebPanel:git checkout WebPanel git pull origin WebPanel git checkout -b feature/your-feature-name
-
Make your changes:
- Focus on modifying files in
/assets/viewsfor UI components - Use the existing CSS classes and variables in
/assets/webpublic/css/custom.css - Keep JavaScript modular in
/assets/webpublic/js/main.js
- Focus on modifying files in
-
Test thoroughly before submitting a pull request.
-
Create a pull request to the
WebPanelbranch (not tomain).
-
Always branch from
website:git checkout website git pull origin website git checkout -b website/feature-name
-
Create a pull request to the
websitebranch when your changes are complete.
- Use ES6+ features when appropriate
- Maintain consistent indentation (2 spaces)
- Use camelCase for variables and functions
- Use PascalCase for classes
- Follow the existing variable system for theming
- Group related styles together
- Use comments to separate sections
- Use correct indentation for nested elements
- Keep logic minimal in templates
- Use partials for reusable components
- Use the
<%- include('partials/component.ejs') %>syntax for includes
- Create a descriptive pull request title that summarizes your changes.
- Fill out the PR template with details about your changes.
- Link any related issues using keywords (e.g., "Fixes #123").
- Wait for code review from maintainers.
- Make requested changes if any are suggested during review.
- Once approved, your PR will be merged into the appropriate branch.
Before submitting your PR, ensure:
- The application runs without errors
- Your feature works as expected
- You haven't broken existing features
- The UI is responsive on mobile devices
- Add comments to complex code sections
- Update README or relevant documentation if your changes require it
- Document any new features or API changes
The website branch contains the landing page and marketing materials:
- Changes to this branch don't affect the core application
- Focus on responsive design and clear communication
- Use the same styling variables when possible for consistency
If you have questions about contributing, join our community channels:
- GitHub Issues: For bug reports and feature requests
- Discord: Join our server
Thank you for contributing to ANDRO! Your efforts help make this project better for everyone.