TechLog (like Medium X) | Live
This project contains the source code for a Medium | X like platform. The project is divided into three main components: Backend, Frontend, and Common modules for shared utilities. The application allows users to read, write, and interact with articles, similar to Medium.
- Authentication: Secure user login and registration.
- Profile Management: Edit profile details including name, and password.
- Write and Edit Articles: Create, update, and delete articles.
- Explore Articles: Browse articles by title.
- Node.js: JavaScript runtime for server-side programming.
- Hono: Web framework for building RESTful APIs.
- Prisma: ORM for database management.
- JWT: Secure authentication using JSON Web Tokens.
- Crypto: Password hashing for secure storage.
- React.js: Library for building interactive user interfaces.
- Tailwind CSS: Utility-first CSS framework for styling.
- Axios: For making HTTP requests.
- Shared utilities and constants used across the application.
- PostgreSQL: Relational database for storing user, article, and interaction data.
- Vercel: For hosting the frontend.
- Cloudflare Worker: For hosting the backend.
- Node.js and npm installed.
- PostgreSQL installed and running.
-
Clone the repository:
git clone https://github.com/Darshan98Solanki/medium.git cd medium -
Install dependencies:
npm install
-
Set up environment variables: Create a
.envfile in the root directory and add the following:DATABASE_URL=your_database_url JWT_SECRET=your_jwt_secret
-
Run migrations: Use Prisma to set up the database schema:
npx prisma migrate dev
-
Start the development server:
npm run dev
The application should be accessible at
http://localhost:3000.
backend/: Contains server-side code including API routes and Prisma ORM setup.frontend/: Contains React components, pages, and styling for the client-side application.common/: Shared utilities, constants, and helper functions.
We welcome contributions to improve the project! Follow these steps:
- Fork the repository.
- Create a feature branch:
git checkout -b feature/your-feature-name
- Commit your changes:
git commit -m "Add your feature" - Push to the branch:
git push origin feature/your-feature-name
- Open a pull request.
For any questions or suggestions, feel free to contact Darshan98Solanki.