Consolidates the standalone hackathon backend (16 crates) into a single imphnen-hackathon crate following the existing clean architecture patterns. All endpoints are exposed under /v1/hackathon/ via the gateway. Features migrated: - Auth: Supabase-based signup/login/GitHub OAuth/password reset (own JWT) - Users: profile management with team listing - Teams: CRUD with city validation, deadline enforcement, invite system - Invitations: team member invitations with accept/reject flow - Join Requests: team join request workflow - Chat: team messaging with author/leader delete permissions - Submissions: project submission lifecycle (draft→pending→submitted) - Storage: Supabase Storage file upload endpoints - Certificates: public user certificate data endpoint - Winners: public winners listing - Admin: admin-only CRUD for all entities Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
IMPHNEN Backend Service
This repository serves as the monorepo for all backend services of IMPHNEN. It encompasses several main services:
- IMPHNEN-Backend - Provides fundamental functionalities and shared resources for other services.
- IMPHNEN-IAM - Handles identity and access management across IMPHNEN applications.
- IMPHNEN-CMS - Supports the cms services by IMPHNEN Landing Page website.
- IMPHNEN-Gacha - Supports the gacha services by IMPHNEN Gacha website.
- IMPHNEN-Dimentorin - Supports the mentoring services by IMPHNEN Dimentorin website.
- IMPHNEN-Gateway - Acts as the API gateway, routing requests to appropriate services.
- IMPHNEN-Middleware - Acts as the middleware for the API Gateway, providing authentication and authorization.
How to Install
-
Clone the repository:
git clone https://github.com/IMPHNEN/imphnen-backend-service.git cd imphnen-backend-service -
Set up the environment:
-
Copy the example environment files:
cp .env.example .envif you use windows based system
./apply-env.ps1if you use unix based system
source ./apply-env.sh -
Modify the
.envfiles with your specific configuration settings.
-
-
Install dependencies:
Ensure you have Rust installed. Then, run:
cargo fetch -
Run the seeders:
to run the seeders, run:
cargo run --bin seeder
How to Run
Development
To run the services in development mode:
-
Start the database and other dependencies using Docker Compose:
docker-compose up -d -
Run using cargo run. For example, to run the Core Service:
cargo run --bin api -
Run using cargo watch. For example, to run the Core Service:
cargo watch -x "run --bin api"
Production
For production deployment:
-
Build the Docker image:
docker build -t imphnen-backend . -
Run the Docker container:
docker run --name imphnen-backend -d --env-file .env -p 3000:3000 imphnen-backendAdjust the port and environment variables as needed.
How to Run the Tests
-
Run the tests:
cargo test -p tests
How to Contribute
-
Fork the repository and clone it locally.
-
Create a new branch for your feature or fix:
git checkout -b feat/your-feature-name -
Make your changes, commit them, and push to your forked repository.
-
Create a pull request to the
developbranch of this repository.
If you encounter any issues or have questions, feel free to create a new issue in the repository.
Note: For detailed API documentation, please refer to our API Docs.