Umedu is a social platform that automatically creates encrypted private forums for students based on their .edu email address. For example, if you authenticate with an email like [email protected], you’ll be able to access the myschool private forum.
To protect the privacy of our users, we do not store your email address or any personal information. Authenticating with your school email simply creates a session in your browser that grants access to a private forum based on your .edu email domain.
If you like this project, please consider giving it a star! ✨ If you wish to suggest or work on a new feature, please open an issue to discuss with the community and the project maintainers. We appreciate your interest and look forward to collaborating with you!
TypeScript, Next.js (RSC, Server Actions, & Route Handlers), Tailwind CSS, TanStack Query, Drizzle ORM, libSQL
- Turso CLI (for local libSQL server)
- Node.js >= 20
- Bun (package manager)
If you're using nvm, you can easily switch to the required Node.js version.
$ nvm use 20 # ignore if you're already on Node.js >= 20
$ bun install# .env
TURSO_CONNECTION_URL=http://127.0.0.1:8080
WHITELIST=[email protected] # If you don't have a .edu emailYou must setup your own Google OAuth client. Setting up OAuth 2.0 →
# .env
GOOGLE_CLIENT_ID=YOUR_CLIENT_ID
GOOGLE_CLIENT_SECRET=YOUR_CLIENT_SECRET
GOOGLE_REDIRECT_URI=http://localhost:3000/auth/google/callbackThis project uses AES-256-GCM to encrypt posts in the private forums. You must generate a key and set it as an environment variable.
# .env
AES_256_GCM_KEY=YOUR_ENCRYPTION_KEYRun the command below to generate an encryption key. The key will be printed to the console.
$ bun aes:generate$ bun devRunning a development server will also run a local libSQL server and create a database for you. Run the migration command below to apply the schema.
$ bun db:migrate
$ bun db:studio # To explore your database (optional)After making changes, you can run a build which will check for lint and type errors.
$ bun run buildOnce ready, you can submit a pull request for review.
This repository is licensed under the GPL-3.0 License.