CodeLog is a web application designed to help software engineers maintain a daily journaling habit. Users can log their daily progress, track their streaks, and interact with posts through comments and likes.
- User Authentication: Secure user registration and login with JWT authentication.
- Journaling: Log daily entries and edit or delete past entries.
- Streak Tracking: Track current and longest streaks with time-based logic.
- Comments and Likes: Interact with posts through comments and likes.
- Frontend: React.js
- Backend: Flask, Gunicorn
- Database: MongoDB, Redis
- Deployment: DigitalOcean, Nginx, Let's Encrypt (SSL)
- Other: JWT for authentication, Systemd for process management
- Node.js and npm
- Python and pip
- MongoDB
- Redis
- DigitalOcean account (or another hosting service)
git clone https://github.com/yourusername/code-log.git
cd code-log-
Create a virtual environment and install dependencies:
python -m venv venv source venv/bin/activate pip install -r requirements.txt -
Configure environment variables: Create a
.envfile in the backend directory and set the required environment variables. -
Run the backend server:
flask run
-
Navigate to the frontend directory and install dependencies:
cd frontend npm install -
Run the frontend server:
npm start
POST /register: Create a new user.POST /login: Authenticate a user and return JWT tokens.
PUT /me/update_infos: Update user information.PUT /me/update_password: Update user password.DELETE /me/delete_user: Delete user account.
POST /log: Log a new entry.GET /feed/get_posts: Retrieve all public posts with optional pagination.PUT /me/update_post: Edit a specific post.DELETE /me/delete_post: Delete a specific post.
GET /me/streaks: Get current and longest streaks.
- Set up Gunicorn and Systemd for process management.
- Configure Nginx as a reverse proxy.
- Deploy on a DigitalOcean server.
-
Build the React app:
npm run build
-
Deployed on the same DigitalOcean server as the backend.
- Use Let's Encrypt and Certbot to obtain and renew SSL certificates.
- We purchased and configured "code-log.site" as our domain name on Namecheap.
This project is licensed under the MIT License.
CodeLog is more than just a journaling app; it's a tool designed to help software engineers stay organized, track their progress, and connect with their peers through shared experiences. From robust backend solutions to a sleek, user-friendly frontend, this project showcases the power of collaboration and modern web development technologies. We're proud of what we've built and excited to see how it can benefit the developers community!
-
Youssef Charif Hamidi
- GitHub: Chareeef
- LinkedIn: youssef-charif-hamidi
- Email: youssef.charif.h@gmail.com
-
Mohamed Lamine Boukhalfa
- GitHub: tommy457
- LinkedIn: mohamed-lamine-boukhalfa
- Email: boukhalfaml1011@gmail.com
-
Khadija Ghadi
- GitHub: Gdija
- LinkedIn: khadija-ghadi
- Email: khadijaghadi00@gmail.com
-
Harriet M Mugendi
- GitHub: MwendeHarriet
- LinkedIn: harriet-m-mugendi
- Email: mwendeharriet@gmail.com




