- Personal backend API
- Github Graphql API
- LeetCode Graphql API
- Clerk Auth API
- Cloudinary API (Image uploads)
DevHead is built using the following technologies:
- React
- RemixJS
- TypeScript
- PostgreSQL
- node-pg
- Tailwind CSS
- Jest
- Customizable Profiles: Users create unique digital identities by personalizing their profile pages with pictures, bio, skills, and contact info.
- Showcase Contributions: A central hub for displaying contributions, projects, and statistics.
- Integrate LeetCode and GitHub: Connect accounts to reveal proble-solving abilities and GitHub contributions.
- Flexible Customization: Conveniently add, edit, or delete features and posts to keep profiles current.
- Post Management: Create, edit, and delete posts directly from the profile page.
- Profile Completion Notifications: Encourage completion for visibility on the Devs page.
- Introduction: Initial platform overview with key features.
- Navigation: Visitors can explore, sign in, or register.
- In-Depth Information: Learn more about DevHead, its platform, developer, and future vision.
- User Directory: Explore and connect with developers who completed their profiles.
- Dynamic Feed: Engage with developer posts through likes, comments, and links.
- User Control: Customize profiles and posts to reflect evolving skills and projects.
- Secure Login: OAuth-based authentication ensures user data safety.
-
Initial Visit:
- New visitors arrive at DevHead.
- Explore Landing Page and About Page without login.
-
Landing Page (Before Login):
- Learn about site purpose and key features.
- Navigate to other pages or sign in/register.
-
About Page (Before Login):
- Access detailed information about DevHead, its mission, and vision.
-
Authentication and Security (Login/Sign Up):
- Secure OAuth-based authentication for registration and login.
-
Landing Page (After Login):
- Redirected to Landing Page with navigation options.
-
Navigation Bar:
- Access different sections:
- Profile Page: Customize your profile, manage posts.
- Devs Page: Explore other developers.
- Post Page: Engage with posts from developers.
- you can run tests with
npm run test
- tests are located in the modules files and route-tests file
- POST
/api/comments
- Add a comment to a project.
- DELETE
/api/comments
- Delete a comment by its comment ID.
- POST
/api/follows
- Follow another user.
- DELETE
/api/follows
- Unfollow a user.
- GET
/api/user/profile/:username
- Retrieve a user's profile information.
- POST
/api/likes
- Add a like to a project.
- DELETE
/api/likes
- Remove a like from a project.
- POST
/api/projects
- Add a new project.
- PUT
/api/projects
- Update an existing project.
- DELETE
/api/projects
- Delete a project by its project ID.
- POST
/api/skills
- Add a skill to a user's profile.
- DELETE
/api/skills
- Remove a skill from a user's profile.
- GET
/api/github-users/:username
- Retrieve GitHub user information by username.
- GET
/api/leetcode-users/:username
- Retrieve LeetCode user information by username.
- POST
/api/images/upload
- Upload an image to Cloudinary.