π ATLES Code Studio - Project Management Guide
Complete guide to using ATLES project management features
π Table of Contents
- Overview
- ATLES Project Files
- Creating Projects
- Project Settings
- Build Configurations
- Git Integration
- Package Management
- Project Templates
- Best Practices
π― Overview
ATLES Code Studio provides comprehensive project management capabilities that rival professional IDEs like Visual Studio Code and IntelliJ IDEA. The system is built around .atles project files that store project metadata, build configurations, and settings.
Key Features
- Project Templates: Pre-configured setups for Python, JavaScript, C++, and web projects
- Build Configurations: Multiple environment setups (development, production, testing)
- Git Integration: Built-in version control with visual status indicators
- Package Management: Automatic dependency handling for Python (pip) and Node.js (npm)
- Project Settings: Customizable per-project configurations
- Recent Projects: Quick access to recently opened projects
π ATLES Project Files
Project Structure
MyProject/
βββ .atles/
β βββ project.json # Main project configuration
β βββ build_configs.json # Build configurations
β βββ cache/ # Build cache and temporary files
βββ src/ # Source code directory
βββ tests/ # Test files
βββ docs/ # Documentation
βββ main.py # Main entry point
βββ requirements.txt # Python dependencies
βββ README.md # Project documentation
βββ .gitignore # Git ignore rules
Project Configuration (project.json)
{
"config": {
"name": "My ATLES Project",
"type": "python",
"version": "1.0.0",
"created": "2024-01-15T10:30:00",
"description": "A sample Python project",
"author": "Developer",
"main_file": "main.py",
"source_dirs": ["."],
"build_dir": "build",
"dependencies": {},
"scripts": {
"start": "python main.py",
"test": "python -m pytest tests/",
"lint": "flake8 .",
"format": "black ."
},
"settings": {
"python_version": "3.8+",
"encoding": "utf-8",
"line_endings": "auto"
}
},
"build_configs": {
"development": { ... },
"production": { ... },
"test": { ... }
},
"last_modified": "2024-01-15T15:45:00"
}
π Creating Projects
Using the Project Manager
Open Project Manager:
FileβProjectβNew Project...orCtrl+Shift+NChoose Project Type:
- Python Application: Full Python project with virtual environment
- JavaScript/Node.js: Node.js project with package.json
- Web Project: HTML/CSS/JS with development server
- C++ Application: C++ project with build system
- General Project: Basic project structure
Configure Project:
- Name: Project name (will be the folder name)
- Location: Where to create the project
- Description: Optional project description
- Git Repository: Initialize Git repository
- Virtual Environment: Create Python venv (Python projects only)
Project Templates
Python Project Template
MyPythonApp/
βββ .atles/
βββ src/
βββ tests/
βββ docs/
βββ main.py
βββ requirements.txt
βββ README.md
βββ .gitignore
βββ venv/ # If virtual environment created
Default Scripts:
start:python main.pytest:python -m pytest tests/lint:flake8 .format:black .install:pip install -r requirements.txt
JavaScript Project Template
MyJSApp/
βββ .atles/
βββ src/
βββ tests/
βββ docs/
βββ index.js
βββ package.json
βββ README.md
βββ .gitignore
βββ node_modules/ # After npm install
Default Scripts:
start:node index.jsdev:npm run devbuild:npm run buildtest:npm testinstall:npm install
Web Project Template
MyWebApp/
βββ .atles/
βββ src/
β βββ css/
β βββ js/
β βββ images/
βββ index.html
βββ style.css
βββ script.js
βββ README.md
βββ .gitignore
Default Scripts:
serve:python -m http.server 8000build:npm run builddev:npm run dev
βοΈ Project Settings
Accessing Settings
- Project-specific: Stored in
.atles/project.json - Global settings: Stored in
atles_settings.json - Priority: Project settings override global settings
Configuration Options
General Settings
{
"name": "Project Name",
"type": "python|javascript|cpp|web|general",
"version": "1.0.0",
"description": "Project description",
"author": "Developer Name",
"main_file": "main.py",
"source_dirs": ["src", "lib"],
"build_dir": "build"
}
Development Settings
{
"settings": {
"python_version": "3.8+",
"encoding": "utf-8",
"line_endings": "auto|lf|crlf",
"tab_size": 4,
"use_spaces": true,
"auto_save": true,
"format_on_save": true
}
}
Custom Scripts
{
"scripts": {
"start": "python main.py",
"dev": "python main.py --debug",
"test": "python -m pytest tests/ -v",
"coverage": "python -m pytest --cov=src tests/",
"docs": "sphinx-build docs/ docs/_build/",
"deploy": "python setup.py sdist bdist_wheel"
}
}
π§ Build Configurations
Managing Build Configurations
Access via: Build β Build Configurations...
Configuration Structure
{
"development": {
"name": "Development",
"command": "python main.py",
"args": ["--debug", "--verbose"],
"working_dir": ".",
"env": {
"PYTHONPATH": ".",
"DEBUG": "1",
"LOG_LEVEL": "DEBUG"
}
},
"production": {
"name": "Production",
"command": "python main.py",
"args": ["--optimize"],
"working_dir": ".",
"env": {
"PYTHONPATH": ".",
"DEBUG": "0",
"LOG_LEVEL": "INFO"
}
},
"test": {
"name": "Run Tests",
"command": "python -m pytest",
"args": ["tests/", "-v", "--cov=src"],
"working_dir": ".",
"env": {
"PYTHONPATH": ".",
"TESTING": "1"
}
}
}
Running Configurations
- Run (F5): Execute development configuration
- Build (Ctrl+F5): Execute production configuration
- Custom: Select specific configuration from Build menu
Configuration Examples
Python Web Server
{
"web_server": {
"name": "Development Server",
"command": "python -m flask run",
"args": ["--debug", "--port=5000"],
"working_dir": ".",
"env": {
"FLASK_APP": "app.py",
"FLASK_ENV": "development"
}
}
}
Node.js Application
{
"dev_server": {
"name": "Development Server",
"command": "npm run dev",
"args": [],
"working_dir": ".",
"env": {
"NODE_ENV": "development",
"PORT": "3000"
}
}
}
C++ Compilation
{
"debug_build": {
"name": "Debug Build",
"command": "g++",
"args": ["-g", "-Wall", "-std=c++17", "main.cpp", "-o", "main_debug"],
"working_dir": ".",
"env": {
"CXX": "g++",
"CXXFLAGS": "-g -Wall"
}
}
}
π Git Integration
Git Features
- Status Indicators: Visual file status in explorer
- Basic Operations: Commit, push, pull, status
- Repository Detection: Automatic Git repository detection
- Branch Information: Current branch display in status bar
Git Operations
Viewing Status
- Menu:
ToolsβGitβStatus - Terminal Output: Shows modified, added, deleted files
- File Explorer: Visual indicators (M, A, D, ??)
Committing Changes
- Menu:
ToolsβGitβCommit... - Enter commit message in dialog
- Automatic staging: All changes are staged automatically
- Commit: Creates commit with message
Push/Pull Operations
- Push:
ToolsβGitβPush - Pull:
ToolsβGitβPull - Status feedback: Success/failure messages in status bar
Git Status Indicators
| Indicator | Meaning |
|---|---|
M |
Modified file |
A |
Added file |
D |
Deleted file |
?? |
Untracked file |
R |
Renamed file |
C |
Copied file |
Git Workflow Example
# 1. Make changes to files
# 2. View status
Tools β Git β Status
# 3. Commit changes
Tools β Git β Commit...
# Enter: "Add new feature X"
# 4. Push to remote
Tools β Git β Push
π¦ Package Management
Supported Package Managers
- Python: pip (with virtual environment support)
- Node.js: npm
- Future: yarn, poetry, conda
Python Package Management
Installing Dependencies
- Menu:
ToolsβPackage ManagerβInstall Dependencies - Requirements file: Reads from
requirements.txt - Virtual environment: Uses project venv if available
- Terminal output: Shows installation progress
Virtual Environment Support
# ATLES automatically detects and uses:
MyProject/venv/Scripts/pip.exe # Windows
MyProject/venv/bin/pip # Linux/Mac
# Falls back to system pip if no venv
Updating Dependencies
- Menu:
ToolsβPackage ManagerβUpdate Dependencies - Shows outdated packages: Lists packages that can be updated
- Manual updates: User can choose which packages to update
Node.js Package Management
Installing Dependencies
- Menu:
ToolsβPackage ManagerβInstall Dependencies - Package file: Reads from
package.json - Command: Executes
npm install - Dependencies: Installs both dependencies and devDependencies
Updating Dependencies
- Menu:
ToolsβPackage ManagerβUpdate Dependencies - Command: Executes
npm update - Version checking: Shows outdated packages
Package Management Examples
Python Requirements.txt
# Core dependencies
requests>=2.25.0
flask>=2.0.0
sqlalchemy>=1.4.0
# Development dependencies
pytest>=6.0.0
black>=21.0.0
flake8>=3.9.0
# Optional dependencies
redis>=3.5.0 # For caching
celery>=5.0.0 # For background tasks
Node.js Package.json
{
"name": "my-project",
"version": "1.0.0",
"dependencies": {
"express": "^4.18.0",
"mongoose": "^6.0.0",
"lodash": "^4.17.0"
},
"devDependencies": {
"jest": "^28.0.0",
"nodemon": "^2.0.0",
"eslint": "^8.0.0"
},
"scripts": {
"start": "node index.js",
"dev": "nodemon index.js",
"test": "jest"
}
}
π Project Templates
Creating Custom Templates
You can create custom project templates by:
- Create template project with desired structure
- Add to templates directory:
~/.atles/templates/ - Template configuration: Create
template.json
Template Configuration
{
"name": "FastAPI Project",
"description": "FastAPI web application with database",
"type": "python",
"files": [
{
"path": "main.py",
"content": "# FastAPI application\nfrom fastapi import FastAPI\n\napp = FastAPI()\n\n@app.get('/')\ndef read_root():\n return {'Hello': 'World'}"
},
{
"path": "requirements.txt",
"content": "fastapi>=0.68.0\nuvicorn>=0.15.0\nsqlalchemy>=1.4.0"
}
],
"directories": ["app", "tests", "docs"],
"scripts": {
"start": "uvicorn main:app --reload",
"test": "pytest tests/",
"docs": "mkdocs serve"
}
}
Available Templates
Python Templates
- Basic Python: Simple Python application
- Flask Web App: Web application with Flask
- FastAPI: Modern API with FastAPI
- Data Science: Jupyter notebooks and data analysis
- CLI Tool: Command-line application with Click
JavaScript Templates
- Node.js API: Express.js REST API
- React App: React frontend application
- Vue.js App: Vue.js frontend application
- Electron App: Desktop application with Electron
Web Templates
- Static Website: HTML/CSS/JS website
- Bootstrap Site: Responsive website with Bootstrap
- Progressive Web App: PWA with service workers
π― Best Practices
Project Organization
- Use meaningful names: Clear project and file names
- Follow conventions: Language-specific directory structures
- Document everything: README, code comments, API docs
- Version control: Always use Git for projects
- Virtual environments: Isolate dependencies
Build Configurations
- Environment separation: Different configs for dev/prod/test
- Environment variables: Use env vars for configuration
- Consistent naming: Use standard names (development, production, test)
- Documentation: Document what each configuration does
Git Workflow
- Frequent commits: Small, focused commits
- Descriptive messages: Clear commit messages
- Branch strategy: Use branches for features
- Regular pushes: Don't lose work
Dependency Management
- Pin versions: Specify exact versions in production
- Regular updates: Keep dependencies current
- Security scanning: Check for vulnerabilities
- Minimal dependencies: Only include what you need
Project Structure Examples
Python Project
MyPythonProject/
βββ .atles/
βββ src/
β βββ __init__.py
β βββ main.py
β βββ models/
β βββ views/
β βββ utils/
βββ tests/
β βββ __init__.py
β βββ test_main.py
β βββ fixtures/
βββ docs/
β βββ README.md
β βββ api.md
βββ scripts/
β βββ setup.py
β βββ deploy.py
βββ requirements.txt
βββ requirements-dev.txt
βββ .gitignore
βββ README.md
Node.js Project
MyNodeProject/
βββ .atles/
βββ src/
β βββ index.js
β βββ routes/
β βββ models/
β βββ middleware/
β βββ utils/
βββ tests/
β βββ unit/
β βββ integration/
βββ docs/
βββ public/
β βββ css/
β βββ js/
β βββ images/
βββ package.json
βββ package-lock.json
βββ .gitignore
βββ README.md
π Advanced Features
Project Workspace
- Multi-project support: Open multiple projects simultaneously
- Project switching: Quick switching between projects
- Shared settings: Common settings across projects
Build Automation
- Pre/post build scripts: Custom scripts before/after builds
- Build notifications: Success/failure notifications
- Build history: Track build results and timing
Integration Points
- External tools: Integration with external build tools
- CI/CD: Export configurations for CI/CD systems
- Docker: Container-based development environments
This comprehensive project management system makes ATLES Code Studio a powerful development environment that can handle projects of any size and complexity! π