A complete startup ecosystem helping teenage entrepreneurs validate ideas, find co-founders, and build successful businesses
TConnect is a desktop application built with Electron, Vue 3, and PostgreSQL that empowers teenage entrepreneurs to transform their ideas into thriving startups through validation tools, co-founder matching, project management, and a supportive community.
- Problem solver board for getting real feedback
- Voting system for idea validation
- Market validation tracking
- Feedback from the community
- Success scoring based on engagement
- Skill-based matching algorithm
- "Looking for co-founder" profile flags
- Required skills listing
- Match notifications
- Compatibility scoring
- Built-in kanban boards
- Milestone tracking
- Revenue goal tracking
- Progress visualization
- Team collaboration tools
- Startup academy with step-by-step guides
- Video course integration
- Mentor matching system
- Weekly challenges
- Resource library
- Services listing (design, dev, marketing)
- Buy and sell services
- Portfolio showcase
- Review and rating system
- Secure transactions
- Micro-investment platform
- Pitch creation tools
- Investment tracking
- Pre-order system for product launches
- Revenue sharing agreements
- Metrics dashboard
- Website visitor tracking
- Email signup tracking
- Revenue tracking
- Compare with similar startups
- Business model canvas
- Pitch deck templates
- Landing page builder
- Survey creation tools
- Pricing calculator
- Legal document templates
- Invoice generator
- Achievement tracking
- Badge system
- Journey progress visualization
- Gamification elements
- Celebrate wins with community
- Weekly/monthly challenges
- Cohort creation for accountability
- Group goals and check-ins
- Community support
- Email/password registration with verification
- OAuth login (Google & GitHub)
- JWT-based authentication
- Password reset functionality
- Secure password hashing with bcrypt
- Rate limiting and security headers
- Customizable profiles with bio, skills, and interests
- Profile photos and cover images
- Privacy controls (public/private profiles)
- Social media links
- Entrepreneur-specific fields (looking for mentors, cofounders, etc.)
- Send and manage connection requests
- View your network of connections
- Discover other teen entrepreneurs
- Search by skills, interests, and location
- News feed with posts, likes, and comments
- Share text, images, and links
- Real-time notifications
- Direct messaging with WebSocket support
- Typing indicators
- Create portfolio of your projects
- Add descriptions, images, and links
- Mark projects as looking for collaborators
- Like and comment on projects
- Create and join entrepreneurship groups
- Post in group discussions
- Group moderation tools
- Public and private groups
- Create and discover entrepreneurship events
- RSVP to events
- Virtual and in-person events
- Event reminders
- Advanced search for users, projects, groups, and events
- Filter by skills, interests, location
- Smart recommendations
- Block users
- Report inappropriate content
- Content moderation
- Privacy settings
- Vue 3 - Progressive JavaScript framework
- Vue Router - Official router for Vue.js
- Pinia - State management for Vue
- Axios - HTTP client
- Socket.io Client - Real-time communication
- Vite - Next generation build tool
- Node.js - JavaScript runtime
- Express - Web application framework
- PostgreSQL - Relational database
- Socket.io - Real-time bidirectional communication
- JWT - JSON Web Tokens for authentication
- Bcrypt - Password hashing
- Nodemailer - Email sending
- Passport - OAuth authentication
- Electron - Cross-platform desktop app framework
- Node.js (v18 or higher)
- PostgreSQL (v14 or higher)
- npm or yarn
git clone https://github.com/yourusername/TconnectPhoenix.git
cd TconnectPhoenixnpm install
Copy .env.example to .env and configure:
cp .env.example .env
Update the following variables in .env:
# Database DB_HOST=localhost DB_PORT=5432 DB_NAME=tconnect_phoenix DB_USER=postgres DB_PASSWORD=your-postgres-password # JWT Secrets (change these!) JWT_SECRET=your-super-secret-jwt-key JWT_REFRESH_SECRET=your-refresh-token-secret # Email (for Gmail, create app password) EMAIL_HOST=smtp.gmail.com EMAIL_PORT=587 EMAIL_USER=your-email@gmail.com EMAIL_PASSWORD=your-app-password # OAuth (Get from Google & GitHub developer consoles) GOOGLE_CLIENT_ID=your-google-client-id GOOGLE_CLIENT_SECRET=your-google-client-secret GITHUB_CLIENT_ID=your-github-client-id GITHUB_CLIENT_SECRET=your-github-client-secret
# Create database and run schema npm run db:setup # Seed with initial data (skills, interests) node server/database/seed.js
Development mode:
npm run dev
This will start:
- Backend server on http://localhost:3001
- Vite dev server on http://localhost:5173
- Electron desktop app
Production build:
npm run build npm run electron:build
TconnectPhoenix/
βββ src/ # Frontend Vue application
β βββ components/ # Vue components
β βββ views/ # Page components
β βββ router/ # Vue Router configuration
β βββ stores/ # Pinia stores
β βββ services/ # API services
β βββ utils/ # Utility functions
β βββ assets/ # Static assets
β βββ App.vue # Root component
β βββ main.ts # Application entry
β
βββ server/ # Backend Express server
β βββ controllers/ # Route controllers
β βββ middleware/ # Custom middleware
β βββ routes/ # API routes
β βββ services/ # Business logic services
β βββ utils/ # Utility functions
β βββ database/ # Database files
β β βββ schema.sql # Database schema
β β βββ setup.js # Database setup script
β β βββ seed.js # Seed data script
β β βββ connection.js # Database connection
β βββ server.js # Server entry point
β
βββ electron-main.js # Electron main process
βββ preload.js # Electron preload script
βββ vite.config.ts # Vite configuration
βββ package.json # Dependencies and scripts
βββ .env # Environment variables
POST /api/auth/register- Register new userPOST /api/auth/login- Login userGET /api/auth/verify-email?token=xxx- Verify emailPOST /api/auth/resend-verification- Resend verification emailPOST /api/auth/forgot-password- Request password resetPOST /api/auth/reset-password- Reset passwordPOST /api/auth/refresh-token- Refresh access tokenGET /api/auth/me- Get current user (protected)
GET /api/users/:id- Get user profilePUT /api/users/profile- Update profileGET /api/users/search- Search users
POST /api/connections/request- Send connection requestPOST /api/connections/accept/:id- Accept requestPOST /api/connections/reject/:id- Reject requestGET /api/connections- Get user connections
GET /api/posts- Get feed postsPOST /api/posts- Create postPUT /api/posts/:id- Update postDELETE /api/posts/:id- Delete postPOST /api/posts/:id/like- Like postPOST /api/posts/:id/comment- Comment on post
- Real-time messaging via Socket.io
GET /api/messages/conversations- Get user conversationsPOST /api/messages- Send messageGET /api/messages/:conversationId- Get conversation messages
- Co-founder matching endpoints
- Milestone tracking endpoints
- Marketplace endpoints
- Funding platform endpoints
- Learning resources endpoints
- Create component in
src/views/ - Add route in
src/router/index.ts - Add navigation link in
App.vue
import { useAuthStore } from '@/stores/auth'; const authStore = useAuthStore(); // Login await authStore.login(email, password); // Register await authStore.register(userData); // Check if authenticated if (authStore.isAuthenticated) { // User is logged in } // Get current user const user = authStore.user;
import api from '@/services/api'; // GET request const response = await api.get('/users/123'); // POST request const response = await api.post('/posts', { content: 'My post content' });
join- Join user's personal roomjoin_conversation- Join conversation roomsend_message- Send messagetyping- User is typingstop_typing- User stopped typing
new_message- New message receiveduser_typing- Another user is typinguser_stop_typing- User stopped typingnotification- New notification
# Run unit tests (coming soon) npm test # Run E2E tests (coming soon) npm run test:e2e
- Set up PostgreSQL database on your hosting provider
- Run
npm run db:setupon production server - Update
.envwith production database credentials
Deploy to services like:
- Heroku
- DigitalOcean
- AWS EC2
- Google Cloud Run
Build installers:
npm run electron:build
Outputs in dist/ folder:
- Windows:
.exeinstaller - macOS:
.dmginstaller - Linux:
.AppImage
Contributions are welcome! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
- Database schema
- Authentication system
- User profiles
- Basic UI structure
- Modern design with glassmorphism
- Connection system
- News feed
- Real-time messaging
- Project showcase
- Idea validation tools
- Co-founder matching algorithm
- Startup dashboard with milestones
- Learning resources & mentorship
- Marketplace for services
- Funding tools
- Groups & communities
- Events calendar
- Community challenges
- Success milestones & gamification
- Analytics dashboard
- Advanced notifications
- Mobile app version
- Performance optimization
- Advanced analytics
- OAuth integration pending (Google & GitHub credentials needed)
- Email service requires Gmail app password configuration
- Startup ecosystem features are in active development
This project is licensed under the MIT License - see the LICENSE file for details.
Built by teenage entrepreneurs, for teenage entrepreneurs
- GitHub: @yourusername
- Built with β€οΈ for the teenage entrepreneur community
- Inspired by Y Combinator, Product Hunt, and successful startup ecosystems
- Special thanks to all contributors and teen entrepreneurs testing the platform
Need help? Have questions?
- Issues: GitHub Issues
Made with π by teen entrepreneurs, for teen entrepreneurs.