Áleran Vocals
Piano, entrenamiento con micrófono y juegos de oído para alumnos de canto: notas, escalas, afinación, rango vocal, resistencia e intervalos.
Translation pending
Recherche, analyse et suivi des candidatures de stages et de bourses de master.
Translation pending
EducationGitHub @mysteriodatawebOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Repository information has not been collected yet.
No updates detected yet. GitHub releases will appear here.
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗Application web personnelle qui recherche automatiquement des stages et des bourses de master, évalue leur pertinence de façon explicable, suit les candidatures, gère les documents et envoie des alertes e-mail — sans jamais envoyer une candidature à votre place.
Principe : automatiser la recherche, l'analyse, le classement et les rappels ; la soumission reste toujours une action humaine explicitement confirmée.
| Domaine | Ce qui est implémenté |
|---|---|
| Authentification | Compte admin créé par CLI/amorçage ; inscription publique désactivable (ALLOW_REGISTRATION, adresse e-mail confirmée obligatoire), Argon2id, sessions opaques hachées, limitation de débit, réinitialisation du mot de passe par e-mail, cookie httpOnly + contrôle d'origine (CSRF) |
| Profil | Identité, nationalités, études, compétences, expériences, projets, engagements, langues (CECRL), préférences ; import de CV PDF avec écran de confirmation (rien n'est inventé ni enregistré automatiquement) |
| Documents | Espace privé (PDF, DOCX, PNG, JPEG, texte), contrôle du type réel par signature binaire, versions, notes, association aux candidatures, téléchargement par URL signée (S3) ou flux authentifié |
| Catalogue | Stages et bourses avec provenance, offres personnelles enregistrées par lien (plusieurs liens LinkedIn d'un coup, texte collé analysé par l'IA, visibles de leur seul auteur) et liste « À postuler » pour les traiter une par une, filtres serveur (type, pays, domaine, organisme, niveau, financement, échéance, éligibilité, score, statut), recherche plein texte, tri, pagination, favoris |
| Collecte | Connecteurs Greenhouse, Lever, Arbeitnow, Erasmus Mundus (EACEA), RSS ; validation, normalisation, dédoublonnage multi-niveaux, idempotence, robots.txt, limitation de débit, journal des exécutions |
| Matching | Moteur déterministe : éligibilité (eligible / ineligible / unknown), compatibilité /100 pondérée avec fiabilité, priorité explicable ; recalcul automatique |
| Candidatures | Pipeline 8 statuts (en français), Kanban / tableau / calendrier, historique, tâches, documents, relances ; confirmation humaine obligatoire avant « Envoyée » |
| Alertes | Resend (ou mode simulation), nouvelles opportunités, récapitulatif quotidien/hebdomadaire, rappels J-14/7/3/1, tâches, modifications, erreurs de collecte ; déduplication et journal |
| Tableau de bord | Indicateurs réels, échéances 7/30 j avec urgence expliquée, tâches en retard, pipeline, état des sources, collectes, e-mails, erreurs |
| Assistant IA | Facultatif (désactivé sans clé) : brouillons modifiables à partir du profil uniquement, informations manquantes signalées |
apps/web/src/components/ui)..
├── apps/web/ # Frontend Next.js (BFF : /api/auth/*, /api/backend/*)
│ ├── src/app/ # Pages (App Router) et route handlers
│ ├── src/components/ # Design system + layout
│ ├── src/features/ # Écrans par domaine
│ ├── src/lib/ # Client API, formatage, types, couche serveur
│ ├── src/i18n/ # Dictionnaire (fr), prêt pour l'anglais
│ ├── tests/unit/ # Vitest + Testing Library
│ └── e2e/ # Playwright
├── backend/
│ ├── app/api/v1/ # Routes REST /api/v1
│ ├── app/core/ # Config, sécurité, erreurs, logs, temps, texte
│ ├── app/db/ # Session SQLAlchemy, verrous de jobs
│ ├── app/models/ # Modèles (19 tables)
│ ├── app/schemas/ # Schémas Pydantic
│ ├── app/services/ # Logique métier
│ ├── app/workers/ # Connecteurs, ingestion, matching, notifications
│ ├── app/jobs/ # Commandes planifiées (python -m app.jobs.*)
│ ├── migrations/ # Alembic
│ └── tests/ # Pytest (PostgreSQL réel) + jeux de test
├── docs/ # Documentation technique
├── scripts/e2e.sh # Tests end-to-end locaux/CI
├── render.yaml # Blueprint Render (API + cron jobs)
└── .env.example # Variables (valeurs fictives)
# 1. Base de données locale
createdb oi_dev && createdb oi_test
# 2. Backend
cd backend
python3.12 -m venv .venv
.venv/bin/pip install -r requirements-dev.txt
cp ../.env.example .env # puis renseigner DATABASE_URL et SECRET_KEY
.venv/bin/alembic upgrade head
.venv/bin/python -m app.cli seed-sources
.venv/bin/python -m app.cli create-admin --email [email protected] # mot de passe demandé (12 car. min.)
.venv/bin/uvicorn app.main:app --reload --port 8000 # docs : http://localhost:8000/docs
# 3. Frontend (autre terminal)
cd apps/web
npm ci
cp .env.example .env.local
npm run dev # http://localhost:3000
| Action | Commande |
|---|---|
| Tests backend | cd backend && .venv/bin/pytest (base oi_test ou TEST_DATABASE_URL) |
| Lint backend | cd backend && .venv/bin/ruff check app tests && .venv/bin/ruff format --check app tests |
| Tests frontend | cd apps/web && npm test |
| Lint / types frontend | cd apps/web && npm run lint && npm run typecheck |
| Build frontend | cd apps/web && npm run build |
| End-to-end | npm --prefix apps/web run build && bash scripts/e2e.sh (base locale oi_e2e) |
| Nouvelle migration | cd backend && .venv/bin/alembic revision --autogenerate -m "message" |
| Appliquer les migrations | cd backend && .venv/bin/alembic upgrade head |
| Tester une source (à blanc) | cd backend && .venv/bin/python -m app.cli test-source --key greenhouse-internships |
| Lancer une collecte | cd backend && .venv/bin/python -m app.jobs.collect_opportunities |
| Vérifier la configuration | cd backend && .venv/bin/python -m app.cli check-config |
Voir docs/DEPLOYMENT.md : Neon (base), Render (Blueprint render.yaml), Vercel
(racine apps/web), Resend. Variables : docs/ENVIRONMENT.md.
Architecture · Base de données · API · Déploiement · Environnement · Sécurité · Tests · Connecteurs · Exploitation · État d'avancement