Lalabase
Tickets, Doku, Zeiterfassung und Kundengespräche an einem Ort, durchsuchbar per KI. Für Softwarefirmen mit Kundenprojekten. Open Source: auf deinem eigenen Server oder in unserer Cloud in Deutschland.
Translation pending
Match developers to student club projects by submitting ideas, applying to teams, and building crews
Translation pending
AI summary · website and README
BusinessHTML · JavaScriptGitHub @NamishM123OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Loading the full README. The saved excerpt is shown below.
A project-matching platform for a student engineering club. Members submit
project ideas, developers create profiles and apply to projects, tech leads
review applicants and build teams, and admins promote developers into tech
leads. Built with Express + SQLite, JWT auth, and role-based access.Read the full README ↗A project-matching platform for a student engineering club. Members submit project ideas, developers create profiles and apply to projects, tech leads review applicants and build teams, and admins promote developers into tech leads. Built with Express + SQLite, JWT auth, and role-based access.
/node:sqlitedeveloper / tech_lead / admin, protected routes| Role | Can do |
|---|---|
| Developer | create a profile, browse projects, apply / show interest |
| Tech Lead | everything above + review applicants, accept/reject/waitlist, set project status |
| Admin | everything + manage all users, promote/demote roles, delete any project |
Everyone signs up as a developer. An admin promotes members to tech lead.
A demo admin is seeded: admin / admin123.
flowchart TD
UI["Web UI (public/index.html)<br/>hero carousel · project board · dashboards"]
subgraph App["Express app (Vercel serverless)"]
MW["Auth + role middleware<br/>requireAuth · requireRole"]
R["Routes<br/>auth · profiles · projects · applications · admin"]
S["Services<br/>business logic"]
end
DB[("SQLite<br/>members · developer_profiles · projects · applications")]
UI -->|"fetch + Bearer JWT"| MW --> R --> S --> DB
DB --> S --> UI
Clean separation of concerns: routes handle HTTP, services hold business
logic, db.js is the data layer, middleware/ does auth + role protection,
and secrets (JWT_SECRET) live in the environment.
| Method | Route | Auth | Purpose |
|---|---|---|---|
| POST | /api/auth/register | — | Sign up (as developer) |
| POST | /api/auth/login | — | Log in |
| GET | /api/auth/me | ✅ | Current user (fresh role) |
| GET/PUT | /api/profiles/me | ✅ | My developer profile |
| GET | /api/profiles/:id | — | A member's profile |
| GET | /api/projects | — | All projects |
| POST | /api/projects | ✅ | Submit a project |
| PUT/DELETE | /api/projects/:id | ✅* | Manage a project |
| POST | /api/applications | ✅ | "I'm interested" |
| GET | /api/applications/mine | ✅ | My applications |
| GET | /api/applications/project/:id | ✅† | Applicants for a project |
| PUT | /api/applications/:id/status | ✅† | Accept / reject / waitlist |
| DELETE | /api/applications/:id | ✅ | Withdraw (self or manager) |
| GET | /api/admin/users | ✅ admin | All members |
| PUT | /api/admin/users/:id/role | ✅ admin | Change a member's role |
* project creator, assigned tech lead, or admin. † the project's manager.
npm install
npm start # http://localhost:3000
Set a real JWT_SECRET in production / Vercel env vars (a dev fallback is used
otherwise). On Vercel the SQLite file lives in /tmp (per-instance); for durable
shared storage swap in a hosted DB such as Turso or Vercel Postgres.