Welcome to the Tampa Devs Mentorship Platform! This application is designed to foster mentorship opportunities within our local tech community, connecting members for growth, knowledge exchange, and support. Whether you are a junior developer looking for guidance or a senior professional eager to share your expertise, this platform is here to help you build meaningful mentorship relationships.
- About the Platform
- Key Features
- Tech Stack
- Quickstart and Setup Guide
- Deployment
- How to Contribute
- Learn More
- Internal Documentation
- License
This mentorship platform is developed to serve a non-profit tech meetup group, supporting various forms of mentorship: junior-to-senior, senior-to-junior, and even senior-to-senior for cross-discipline knowledge sharing. The platform covers a wide range of tech domains, including:
- Frontend Development
- Backend Development
- DevOps
- Security
- AI/ML
- Databases
- Data Science
By providing features for personalized matching, goal tracking, and streamlined communication, the platform aims to make the mentorship process intuitive and effective.
- Regular Users: Sign up, create profiles, and participate as mentors or mentees. Users can manage mentorships, track progress, and receive notifications.
- Admins: Manage users, oversee mentorship requests, and respond to user inquiries.
- Owners: Configure platform-wide settings, manage admin roles, and access high-level analytics and configurations.
- Onboarding: Users specify skills, expertise, and mentorship preferences during onboarding to ensure effective matching.
- User Dashboard: A hub for mentorship activities, including viewing suggestions, managing current mentorships, and receiving notifications.
- Mentorship Matching: Matches users based on interests, expertise, and survey responses to ensure relevant and beneficial connections.
- Mentorship Details: In-app messaging, goal tracking, and mentorship progress monitoring to facilitate successful mentorship relationships.
- Public Pages: Informative pages about the mentorship program, organization values, FAQs, and contact information.
- Frontend: Next.js with Tailwind CSS for styling, ShadCN components, and shad/ui for a cohesive design.
- Backend: tRPC for creating type-safe APIs with TypeScript, integrated with a Node.js server.
- Database: Prisma with PostgreSQL for user data, with plans for MongoDB if chat functionality is added.
- Authentication: NextAuth.js for user authentication, supporting Google, GitHub, and email/password.
To get started with the Tampa Devs Mentorship Platform, follow these steps:
- Node.js (v18.0.0 or higher recommended)
- pnpm (v9.12.3 or higher)
- PostgreSQL for database setup
-
Clone the repository:
git clone https://github.com/tampa-devs/mentorship-platform.git cd mentorship-platform
-
Install dependencies:
pnpm install
-
Set up the environment variables: Create a
.env
file based on the.env.example
provided, and add the necessary configurations (e.g., database URL, authentication secrets). -
Set up the database:
pnpm run db:generate pnpm run db:migrate
-
Start the development server:
pnpm run dev
The application will be running on
http://localhost:3000
. -
For production builds:
pnpm run build pnpm run start
To run the application using Docker, follow these steps:
-
Build the Docker image:
docker build -t tampa-devs-mentorship-platform .
-
Run the Docker container:
docker run -p 3000:3000 --env-file .env tampa-devs-mentorship-platform
The application will be accessible at
http://localhost:3000
.
- Linting: To check code quality, run:
pnpm run lint
- Formatting: To automatically format code, run:
pnpm run format:fix
- Type Checking: To verify TypeScript types, run:
pnpm run typecheck
The platform can be deployed using scalable cloud solutions, with Vercel recommended for frontend deployment and Railway or AWS for backend services, supporting easy scaling.
We welcome contributions to the Tampa Devs Mentorship Platform! Please feel free to fork the repository, submit pull requests, and help enhance the mentorship experience for the tech community.
If you'd like to learn more about the technologies used or how to get involved, explore the resources below:
For any questions or to get involved with Tampa Devs, please visit our website or contact us directly through the platform.
For detailed information on the platform's architecture, data models, and business logic, refer to the internal documentation files:
- Product Overview: Detailed description of the platform's features, user roles, and technical requirements.
- Prisma Database Schema: Comprehensive guide to the database schema, models, and relationships.
- UI Directory: Detailed guide to the UI components and design system.
Ready to start mentoring or being mentored? Sign up today and begin your journey towards personal and professional growth with Tampa Devs!