Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/tquintal/call-to-consciousness
Portfolio website
https://github.com/tquintal/call-to-consciousness
nextauth nextjs prisma prisma-orm react reactjs trpc trpc-api
Last synced: about 1 month ago
JSON representation
Portfolio website
- Host: GitHub
- URL: https://github.com/tquintal/call-to-consciousness
- Owner: tquintal
- Created: 2024-04-19T09:14:23.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2024-11-01T13:56:57.000Z (about 2 months ago)
- Last Synced: 2024-11-01T14:34:39.899Z (about 2 months ago)
- Topics: nextauth, nextjs, prisma, prisma-orm, react, reactjs, trpc, trpc-api
- Language: TypeScript
- Homepage: https://call-to-consciousness.com
- Size: 11.1 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Project Introduction
## Portfolio Website
This project is a React/Next.js application created to serve as a portfolio website for my sister. It showcases her work and allows her to dynamically manage the content through an intuitive backoffice system.### ✨ Key Features
- **Login System**: Secure access to the backoffice.
- **Dynamic Content Editing**: Allows efficient content updates.
- **Type-Safe API**: Ensures reliable communication between the front-end and back-end.
- **Responsive Design**: Provides a modern and adaptable layout.
- **Animations and Transitions**: Enhances user experience with smooth visual effects.### 🏋️ Challenges Faced
One of the main challenges was managing forms in the backoffice, which includes functionalities to add, edit, and remove blocks of fields. Ensuring these operations are user-friendly and efficient required careful planning and implementation.### 🏆 Achievements
- **Intuitive and Consistent Website**: Created an intuitive and consistent website that is easy to navigate.
- **Dynamic Content Management**: Developed a backoffice system that allows for dynamic management of all website content, making it easy for my sister to keep her portfolio up-to-date without technical assistance.### 🏛️ Software Architecture
The project follows a layered architecture pattern to ensure maintainability, scalability, and separation of concerns. Here's an overview of the software architecture:
- **Presentation Layer**: The frontend is built using React/Next.js, following a component-based architecture. It handles user interaction and UI rendering, presenting data to users in a visually appealing manner.
- **Application Layer**: The application layer contains business logic and orchestrates interactions between the frontend and backend. It utilizes Next.js API routes and tRPC to define type-safe APIs for communication.
- **Data Access Layer**: Prisma ORM is used for interacting with the database, providing a type-safe and intuitive way to query and manipulate data. PostgreSQL is chosen as the database solution for its reliability and scalability.
- **Authentication and Authorization Layer**: Authentication is managed using NextAuth, supporting various authentication providers and ensuring secure access to the backoffice.
- **Styling and Animation Layer**: TailwindCSS is employed for styling the application, offering utility-first CSS classes for rapid UI development. Framer Motion is integrated for adding animations and transitions, enhancing the user experience.### ⚙️ Technical Details
- **Next.js**: Utilized for server-side rendering and static site generation, improving performance and SEO.
- **NextAuth**: Implemented for secure and flexible authentication, supporting JWT and database sessions.
- **Prisma ORM**: Used for database interactions and data modeling, enabling type-safe queries and migrations.
- **tRPC**: Allows for the creation of type-safe APIs with minimal boilerplate, ensuring end-to-end type safety.
- **TailwindCSS**: Employed for utility-first CSS styling, allowing for rapid UI development and consistent design.
- **Framer Motion**: Integrated for declarative animations and transitions, enhancing the visual appeal and interactivity of the application.
- **React Hook Form**: Used for managing forms, ensuring robust form validation and state management.
- **PostgreSQL**: Chosen as the database for its reliability and powerful features, managed through Prisma.🔗 [Visit](https://call-to-consciousness.com/)
## Screenshots
### Backoffice
![backoffice_1](/screenshots/backoffice_screen_1.png)
![backoffice_2](/screenshots/backoffice_screen_2.png)
![backoffice_3](/screenshots/backoffice_screen_3.png)
![backoffice_4](/screenshots/backoffice_screen_4.png)### Website
![website_1](/screenshots/screenshot_1.png)
![website_1](/screenshots/screenshot_2.png)
![website_1](/screenshots/screenshot_3.png)
![website_1](/screenshots/screenshot_4.png)