JanPost is a blogging platform designed to foster sharing insights on educational content. Built as part of an internship project at GO2Code, this platform focuses on creating meaningful conversations through posts, comments, and tagging while ensuring a secure and user-friendly experience.
- Account Email Activation: Ensure account validity through email activation tokens sent via SMTP.
- Password Reset: Secure password reset functionality using email-based reset tokens via SMTP.
- Registration, Login, Logout, and Password Reset.
- Secure API access with JWT-based authentication.
- Create, update, and delete blog posts with rich content support.
- Categorization and tagging of posts for better discoverability.
- Nested comment structure for threaded discussions.
- Tools to report and moderate user-generated content.
- Customizable profiles with bio, profile picture, and social links.
- Follow and unfollow functionality to track user activities.
- Like posts and share content via APIs.
- Advanced search with filtering by tags, categories, and author.
- Framework: Python (Django)
- API: REST API with Swagger documentation
- Database: PostgreSQL
- Chosen for its powerful query optimization, indexing, and scalability, ensuring high performance.
- Authentication:
- JWT (JSON Web Tokens) for secure user authentication.
- Email-based account activation and password reset using SMTP.
- React + TypeScript: 👉 JanPost Frontend Repository
- Python 3.10+
- PostgreSQL
- Pipenv (for dependency management)
-
Clone the repository:
git clone https://github.com/J0-Y0/GO2COD-FS-01.git cd GO2COD-FS-01
-
Install dependencies:
pipenv install
-
Set up your database connection: Add connection settings in
settings/dev.py
orsettings/prod.py
. Create a .env file and include the following fields:DBNAME=<Your Database Name> DBUSER=<Your Database User> DBPASSWORD=<Your Database Password> HOST=<Your Database Host> PORT=5432 SECRET_KEY=<Your Django Secret Key> ALLOWED_HOSTS=<Your Allowed Hosts> ALLOWED_ORIGINS=<Your Allowed Origins> EMAIL_HOST=<Your SMTP Server> EMAIL_PORT=<Your SMTP Port> EMAIL_USE_TLS=True EMAIL_HOST_USER=<Your Email Address> EMAIL_HOST_PASSWORD=<Your Email Password>
-
Apply database migrations:
py manage.py migrate
-
Run the server:
pipenv run p manage.py runserver
Navigate to the test_data/
folder and execute the database queries provided to populate your database with sample data.
Frontend development is ongoing. You can track the progress and contribute here:
👉 JanPost Frontend Repository
Swagger documentation is available for all API endpoints.
I welcome contributions to improve this project! 🎉
- Fork the repository:
git fork https://github.com/J0-Y0/GO2COD-FS-01.git
- Create your feature branch:
git checkout -b feature-name
3.Commit your changes:
git commit -m "Add a meaningful message"
4.Push your changes and create a pull request.
This project is open-source and available under the MIT License.