Welcome to Moods! a full stack application made with Django framework version 2.2.4, as one of the stack ending project with the coding Dojo and Axsos Academy.
In order to use this website, you have to have Python installed, specifically Python 3. To install Python, please visit python docs
After that, you need to install a virtual environment by running the following command in Windows:
python -m venv py3Env
Then, activate the virtual environment by running this command in the command prompt:
call py3Env\Scripts\activate
After activation, install the project dependencies to the virtual environment using this command:
pip install -r requirements.txt
Then, go to the folder directory where the manage.py file is located and use this command to start the app:
python manage.py runserver
The program will run on localhost:8000 and you should be good to go!
As we were looking for a project idea, creating a minified version of Facebook was on the table. We were struggling to figure out what to do and how to do it. Then, we came up with the idea of connecting people in different time zones. We got to work and created a simple app that replicates most of Facebook's functionality. Users can create their own profile with a random avatar, post on the main dashboard, comment, message other users, and view the time for users in different time zones.
On these pages, we have used Ajax to implement the non-refreshing page method for a better user experience. Once the user registers for the app, they are redirected to the main dashboard to let them know that their registration process went smoothly. Once they sign up, a random avatar is generated for them based on their first name. You can find out more about how to use this avatar here -->> Random Avatar.
in the dashboard, You are met on the left with your user information, and on the right you have the abilty to see people's posts and comment them, you can have your own posts, you have the ability to delete your own comments and posts. Ajax was implemented here on the comments, posts, likes.
We have used alot of crud operations here, such as Creating a post object, creating a like on the post and updating the count, and many more, you can feel free to check our models file with the views.
When we go to our profile in the navigation bar or click on our name, we are redirected to our main profile. Here, we can see our posts, our friends, our requests, and we can post on our profiles, which will also be displayed on the main dashboard.
This is very similar to the user profile page. Here, we can see the other user's information and posts, with an additional feature to see their local time and the time difference between both of you. We can also add them as a friend, and check if they have sent us a friend request.
When you go to the messages section, you will see the users you have sent messages to, the users you have not sent messages to, and other users' information.
We have added a search feature where you can look up people by their first name, last name, and email.
we have added a custom error page for errors :404 and 500, and in the future we are planning to add more
and that's it for now, we have some functionality additions in the future!
Some of the issues we faced during the project were related to the problem of static files rendering. Here are a few resources that can make your life easier:
This was a fun project, and we enjoyed working together as a team to ensure its success. We demonstrated time management and soft skills by listening to each other and utilizing our strengths to complete tasks efficiently. We were amazed at how differently each of us approached problem-solving and delighted to work in a respectful team environment.
As a team, we believe this project has a future, and there are still some functionalities we did not have time to implement. We plan to revisit the repository, clean up the code, and add more features to make it even more presentable.
We would love to hear your feedback and criticism if you end up using our code. Please don't hesitate to reach out to us. And if you find our project useful, please consider giving us a star on the repository.
Finally, we learned a lot during this project in a limited period of time. We were all eager to learn and help each other, which made the experience even more enjoyable.
Thank you for taking the time to read about our project!